我只需要删除我的Perl代码中的第三个空格

时间:2018-12-04 13:56:55

标签: perl

我有一个包含多个空格的文件,我使用:p替换了一个空格

system "sed -i -e 's/[[:space:]]\\+/ /g' /home/donovan/Documents/NWPMIK.txt";

我现在如何去掉第三个空格之后的所有空格?

2 个答案:

答案 0 :(得分:3)

此perl内衬将删除第三个空格之后的所有空格。它实际上是用至少3个空格替换每个至少3个空格的序列,并将结果写入新文件:

perl -pe 's/\s{3,}/   /g' /home/donovan/Documents/NWPMIK.txt > /home/donovan/Documents/NWPMIK_new.txt

如果您希望就地更新文件,则:

perl -pi -e 's/\s{3,}/   /g' /home/donovan/Documents/NWPMIK.txt

答案 1 :(得分:3)

您可以为此使用perl的自动拆分功能:

perl -lane 'push @F, join("", splice(@F,3)); print join " ", @F'

示例:

% echo  'abc def ghi jkl mno pqr' | perl -lane 'push @F, join("", splice(@F,3)); print join " ", @F'
abc def ghi jklmnopqr