下面显示的试用脚本旨在从文本文件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,在该文件中,每行将它们设置为一个。总体来说还可以,...
您只想分割所有空白?
您当前的脚本似乎过于复杂。您可以将其简化为(伪代码):