从文件中删除尾随零的Unix命令
我有一个包含如下数字的文件从文件中删除尾随零的Unix命令,unix,Unix,我有一个包含如下数字的文件 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 如果已安装vim,请在vim中尝试此命令: :%s/\(\n0\.0\)\+\%$// \%%$:匹配文件末尾的位置 如果要处理多个文件,请在bash中尝试以下命令: for file in *.txt do echo ':%s/\(\n0\.0\)\+\%$// | :wq' | vim
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
如果已安装
vim
,请在vim中尝试此命令:
:%s/\(\n0\.0\)\+\%$//
:匹配文件末尾的位置\%%$
如果要处理多个文件,请在bash中尝试以下命令:
for file in *.txt
do
echo ':%s/\(\n0\.0\)\+\%$// | :wq' | vim -e $file
done
:在-e
模式下运行vimex
vim
,请在vim中尝试此命令:
:%s/\(\n0\.0\)\+\%$//
:匹配文件末尾的位置\%%$
如果要处理多个文件,请在bash中尝试以下命令:
for file in *.txt
do
echo ':%s/\(\n0\.0\)\+\%$// | :wq' | vim -e $file
done
:在-e
模式下运行vimex
perl -i -p0777e's/(?:0.0\n)*$//' *.txt
对于大文件,你可以考虑试用这个版本:
tac file.txt | perl -pe '/^0\.0$/ and do{$_=<>; redo} or $x=1 unless $x' | tac
tac file.txt | perl-pe'/^0\.0$/并执行{$| redo}或$x=1,除非$x'| tac
对于多个文件
perl -i -p0777e's/(?:0.0\n)*$//' *.txt
对于大文件,你可以考虑试用这个版本:
tac file.txt | perl -pe '/^0\.0$/ and do{$_=<>; redo} or $x=1 unless $x' | tac
tac file.txt | perl-pe'/^0\.0$/并执行{$| redo}或$x=1,除非$x'| tac
这里有一种使用GNUsed的方法:
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
这里有一种使用GNUsed
的方法:
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
在文件中间有<代码> 0代码>代码吗?删除“<代码> 0”/代码>从结尾?@ kev是的,更新帖子以反映这一点。在文件中间有“<代码> 0”/>代码吗?“拖尾”是什么意思?从末尾删除.0
?@kev Yes,更新帖子以反映这一点。