Jos*_*muk 3 command-line sed text-processing
我有一个文件。
$ cat file
"bar": false
"foo": false
Run Code Online (Sandbox Code Playgroud)
我需要替换的单词false与true仅在图案"foo": false。问题是引号和空格。
我想到了两种方法:
2 个选项的示例尝试:
$ sed -i 's/\(.*foo\)/false/true\1/g' file
Run Code Online (Sandbox Code Playgroud)
它失败了。
Zan*_*nna 10
使用地址。如果您单引号您的sed表达式,引号不是问题
$ sed '/"foo"/ s/false/true/' file
"bar": false
"foo": true
Run Code Online (Sandbox Code Playgroud)
如果你真的需要匹配整个模式,很好:
$ sed '/"foo": *false/ s/false/true/' file
"bar": false
"foo": true
Run Code Online (Sandbox Code Playgroud)
* 匹配任意数量的前一个字符(空格)。
您还可以使用\s匹配制表符(任何水平空白):
sed '/"foo":\s*false/ s/false/true/' file
Run Code Online (Sandbox Code Playgroud)
-i测试后添加选项修改原始文件。
| 归档时间: |
|
| 查看次数: |
9178 次 |
| 最近记录: |