我有一个文件。
$ cat file
"bar": false
"foo": false
我只需要在模式false
中替换这个词。问题是引号和空格。true
"foo": false
我想了两个办法:
- 在某种 qoutes/双引号中隔离整个模式。
- 仅替换前面有“foo”的“false”。
2 选项的示例尝试:
$ sed -i 's/\(.*foo\)/false/true\1/g' file
它失败了。
我有一个文件。
$ cat file
"bar": false
"foo": false
我只需要在模式false
中替换这个词。问题是引号和空格。true
"foo": false
我想了两个办法:
2 选项的示例尝试:
$ sed -i 's/\(.*foo\)/false/true\1/g' file
它失败了。
使用地址。
sed
如果你单引号你的表达式,引号不是问题如果你真的需要匹配整个模式,很好:
*
匹配任意数量的前面字符(空格)。您还可以使用
\s
来匹配制表符(任何水平空格):测试后添加
-i
选项修改原始文件。