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