我有一个包含
等数字的文件125.0
3.5
0.0
2.1
9.0
0.0
0.0
0.0
如何删除文件末尾的零?
谢谢!
编辑:预期输出应为
125.0
3.5
0.0
2.1
9.0
答案 0 :(得分:3)
这是使用GNU sed
的一种方式:
sed ':a; N; $!ba; s/\(\n0.0\)*$//' file.txt
如果您有许多文件并希望进行就地编辑:
sed -i ':a; N; $!ba; s/\(\n0.0\)*$//' *.txt
结果:
125.0
3.5
0.0
2.1
9.0
答案 1 :(得分:1)
如果您安装了vim
,请在vim中尝试以下命令:
:%s/\(\n0\.0\)\+\%$//
\%$
:匹配文件的位置结尾如果要处理多个文件,请在bash:
中尝试此命令for file in *.txt
do
echo ':%s/\(\n0\.0\)\+\%$// | :wq' | vim -e $file
done
-e
:在ex
模式下运行vim 答案 2 :(得分:1)
perl -p0777e's/(?:0.0\n)*$//' file.txt
对于多个文件
perl -i -p0777e's/(?:0.0\n)*$//' *.txt
对于大文件,您可以考虑尝试此版本:
tac file.txt | perl -pe '/^0\.0$/ and do{$_=<>; redo} or $x=1 unless $x' | tac