簡體   English   中英

Unix命令從文件中刪除尾隨零

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM