提取所有无空格字符串

问题描述 投票:0回答:2

下面显示的试用脚本旨在从文本文件F中提取无空间字符串,并按找到的顺序将其传递到结果文件Fr,在此将它们每行设置一个。总体而言,它运行良好,除了在结果文件中可能存在跳过行的行的末尾,除了我不知道它是否是可以正常停止的脚本外,而且最糟糕的是,它花费了尽其所能。

$fic= "<F>"
$ficr="<Fr>"
$fics="<Fs>"
$cF=(gc $fic -encoding utf8)
clc $fics;clc $ficr
$Lfic=(gc $fic).length;
$MPfic=$Lfic-1;$Pfic=0..$MPfic
foreach($x in $Pfic){$llge=((gc $fic)[$x]).length;$mplge=$llge-1;$plge=0..$mplge;foreach($y in $plge)
                       {if($cF[$x][$y] -ne " "){$cF[$x][$y] >> $fics} 
                                               else {if($cF[$x][$y+1] -ne " ")
                                                       {(-join (gc $fics)) >> $ficr;clc $fics}else{while($cF[$x][$y+1] -eq " "){$y=$y+1}}
                                                    }
                       }
                     }

1 /有人知道如何完善该脚本吗? (我想保留它,以说明人们可能遇到的不切实际的编码可能性。)

2 /有人可以为完成的工作建议更有效的代码吗?


输入和输出的示例示例

例如,如果在文件F中,文本如下(空格已用竖线代替,但是在正常文本中,这是没有意义的,竖线与其他任何字符一样;此处它们应精确显示在哪里和如何出现空格;行指示(行x)不属于文本,该文本始终在行的开头(没有开始的空白)。输入中的“行2”是空行。),] >

line 1   %|10|prog|axil,|(les|prog|activés)  
line 2     
line 3   %|début%||||||||||||||||Ce|qu'il|faut:|<<~ZZZ_if_livre_op_prog_PX.txt~>>
line 4   %|à|partir|du|mot|<<~index~>>

文件Fr中应该是什么:

line 1  %
line 2  10
line 3  prog
line 4  axil,
line 5  (les
line 6  prog
line 7  activés)
line 8  %
line 9  début%
line 10 Ce
line 11 qu'il
line 12 faut:
line 13 <<~ZZZ_if_livre_op_prog_LPX.txt~>>
line 14 %
line 15 à
line 16 partir
line 17 du
line 18 mot
line 19 <<~index~>>

下面显示的试用脚本旨在从文本文件F中提取无空间字符串,并以找到的顺序将其传递给结果文件Fr,在该文件中,每行将它们设置为一个。总体来说还可以,...

string powershell extract
2个回答
1
投票

您只想分割所有空白?


1
投票

您当前的脚本似乎过于复杂。您可以将其简化为(伪代码):

© www.soinside.com 2019 - 2024. All rights reserved.