次のような数字を含むファイルがあります
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 を使用する 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
インストール済みの場合は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