Sed

sed -i 命令問題與 '

  • August 10, 2022

我正在嘗試使用 linux 中的 sed 命令編輯大型文本文件中的一行。

我的 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

只需使用雙引號即可。

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

引用自:https://unix.stackexchange.com/questions/713183