sed带有多个引号的单词

时间:2017-06-13 10:40:12

标签: linux sed

我花了3个小时的时间试图解决这个问题,但我不是Linux技术,但这太烦人了。

我需要在文件test.txt

中找到一段文字
"cPHulk":{"BruteForce":3,"Login":3,"*":3}

并将其更改为:

"cPHulk":{"BruteForce":1,"Login":1,"*":1}

你能帮帮我,告诉我正确的sed命令会是什么样子。

非常感谢你的帮助

编辑:我试过这个:

sed -e  "s/\"cPHulk\":{\"BruteForce\":3,\"Login\":3,\"*\":3}/\"cPHulk\":{\"BruteForce\":1,\"Login\":1,\"*\":1}" /root/test.txt

但不幸的是我收到了错误:

sed: -e expression #1, char 45: unterminated `s' command

1 个答案:

答案 0 :(得分:1)

$ cat ip.txt 
foo
"cPHulk":{"BruteForce":3,"Login":3,"*":3}
bar

$ sed 's/"cPHulk":{"BruteForce":3,"Login":3,"\*":3}/"cPHulk":{"BruteForce":1,"Login":1,"*":1}/' ip.txt 
foo
"cPHulk":{"BruteForce":1,"Login":1,"*":1}
bar

使用单引号,只需要转义*。见Overview of basic regular expression syntax