我有一个文件hello.txt,内容为:
"this-is-prod-env" : "yes"
"this-is-devl-env" : "yes"
我需要将"this-is-prod-env" : "yes"
中的值替换为no
。输出应为"this-is-prod-env" : "no"
。我该怎么做?
$ cat input
"this-is-prod-env" : "yes" "this-is-devl-env" : "yes"
$ sed -E 's/("this-is-prod-env" *: )"yes"/1"no"/' input
"this-is-prod-env" : "no" "this-is-devl-env" : "yes"
$ cat input2
"this-is-prod-env" : "yes"
"this-is-devl-env" : "yes"
$ sed '/this-is-prod-env/s/yes/no/' input2
"this-is-prod-env" : "no"
"this-is-devl-env" : "yes"
第一种解决方案可以同时使用这两个文件,但第二种更为惯用。
使用Perl:
perl -i.old -pe 's/yes/no/ if /-prod-/' hello.txt
-i.old
内联编辑文件,并使用.old
后缀保存旧版本的文件(如果你搞砸了,这是一个非常有用的选项(
如果线路包含-prod-
,则s/yes/no if /-prod-/
用yes
代替no