sed -i コマンドの問題 '

sed -i コマンドの問題 '

Linuxでは、sedコマンドを使用して大きなテキストファイルの1行を編集しようとしています。

私のfile.txtの元の行は次のようになります。

Cg64_2043 XI1.MM1.GATE vss '0.0'

本質的に行の0.0を10に変更したいと思います。問題は、sedコマンドを送信しているように見える行自体に「がある」ことです。解決策はありますか?ありがとうございます!

sed -i '/Cg64_2043 XI1.MM1.GATE vss '0.0'/s/0.0/10/' file.txt

ベストアンサー1

二重引用符のみを使用してください。

sed -i "/Cg64_2043 XI1\.MM1\.GATE vss '0\.0'/s/0\.0/10/" file.txt

まず、一致を確認してから交換することは意味がありません。ただ交換してください。一致しない操作は実行されません。

sed -i "s/\(Cg64_2043 XI1\.MM1\.GATE vss \)'0\.0'/\1'10'/" file.txt

またはsedがサポートしている場合-E(ほとんどの場合):

sed -E -i "s/(Cg64_2043 XI1\.MM1\.GATE vss )'0\.0'/\1'10'/" file.txt

おすすめ記事