2017-06-13 40 views
0

我花了3個小時的時間試圖解決這個問題,但我不是Linux技術,但是這非常煩人。帶幾個引號的sed單詞

我需要找到在文件中的一段文字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

添加至少一個您試圖提問的命令...搜索字符串中的'*'必須被轉義...使用'\ *' – Sundeep

+0

更新了我試過的 – LukeJ

+0

它是json文件嗎?如果是這樣,你可以發佈它嗎? – RomanPerekhrest

回答

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