unix命令来替换文件中的内容



我有一个文件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

相关内容

  • 没有找到相关文章

最新更新