[英]Unix command to remove trailing zeros from file
我有一個文件,其中包含數字
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
模式下運行vim 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.