我花了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
答案 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