1

次のような数字を含むファイルがあります

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
4

3 に答える 3

3

GNU を使用する 1 つの方法を次に示します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
于 2013-11-12T09:03:03.480 に答える
1

インストール済みの場合はvim、vim で次のコマンドを試してください。

:%s/\(\n0\.0\)\+\%$//
  • \%$: ファイルの終わりの位置に一致

複数のファイルを処理する場合は、bash で次のコマンドを試してください。

for file in *.txt
do
    echo ':%s/\(\n0\.0\)\+\%$// | :wq' | vim -e $file
done
  • -eex:モードで vim を実行
于 2013-11-12T08:29:13.993 に答える
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
于 2013-11-12T08:41:31.660 に答える