各行の最後の文字を置き換える

各行の最後の文字を置き換える

文字で終わる浮動小数点を含むCSVファイルがあります。

1, 2, 6, 7, "p"
1, 6, 7, 2, "e"

など。

分類作業の場合、「p」を0に、「e」を1に変更したいと思います。つまり、私は以下が欲しい:

1, 2, 6, 7, 0
1, 6, 7, 2, 1

私のファイルのすべての8000行について。

私は試した:

sed -i 's/"p"$/0' filename.csv

そして

sed -i 's"p"$0//' filename.csv

しかし、どちらも機能しません。 sedを使用して各行の複数の文字を置き換える方法は?

ベストアンサー1

sed -e 's/"p"$/0/; t' -e 's/"e"$/1/' filename.csv

の場合、t最初の交換が成功すると分岐し、2番目の交換の試みを防ぎます。これは、1行に最大1つの置換を実行する一般的な慣用語です。

おすすめ記事