我有一个包含多个空格的文件,我使用:p替换了一个空格
system "sed -i -e 's/[[:space:]]\\+/ /g' /home/donovan/Documents/NWPMIK.txt";
我现在如何去掉第三个空格之后的所有空格?
答案 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