我已经花了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

最佳答案

$ 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

09-08 01:47