sed -i 命令问题与 '

sed -i 命令问题与 '

我正在尝试使用 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

答案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

相关内容