「0」文字を含むすべての行を別の行に置き換えるにはどうすればよいですか?

「0」文字を含むすべての行を別の行に置き換えるにはどうすればよいですか?

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

0
0.1
0.0002
0
0.30

この行を単一の0内容(たとえば0.0001、小数点と後ろに数字がある行)に置き換えたいと思います。

次のような変形を試しましたが、sed何もしないか、小数点以下のゼロまですべてゼロに変更します。

sed 's/0/x/g' file
sed 's/^0/x/g' file
sed 's/0^/x/g' file
sed 's/^0^/x/g' file
sed 's/"0"/x/g' file
sed 's/[0]/x/g' file

sed単一文字を処理できないようです0。また、replaceそのコマンドは私のシステムには存在しません。また何ができますか?

ベストアンサー1

連続して 1 つのゼロを置き換えるには、次のようにします。

sed 's/^0$/x/'

^ 行の先頭に一致します。

$ は行末と一致します。

したがって、上記のコマンドは行の先頭と一致し、その後にゼロが続いて行の終わりが一致します。

おすすめ記事