我有一个包含数字的文件
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
我有一个包含数字的文件
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
这是使用 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
如果已vim
安装,请在 vim 中尝试以下命令:
:%s/\(\n0\.0\)\+\%$//
\%$
: 匹配文件末尾的位置如果要处理多个文件,请在 bash 中尝试以下命令:
for file in *.txt
do
echo ':%s/\(\n0\.0\)\+\%$// | :wq' | vim -e $file
done
-e
ex
: 在模式下运行 vimperl -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