[英]string replace using sed
我有一個字符串如下。 使用sed我想在名稱:“ user”和密碼后用“ 66666”輸入字符串替換值詳細信息:輸入字符串:
name: "user"
value: "55555"
username: "test"
value: "77777"
password : "55555"
預期產量:
name: "user"
value: "66666"
username: "test"
value: "77777"
password : "66666"
我嘗試了以下內容,但沒有成功。 它僅替換密碼,而不是名稱后的值
sed -i -e 's/\(password\|name: "[^"]*"{\n}value\): "[^"]*"/\1: "66666"/' test.txt
嘗試這個:
sed -e '/name: *"user"/{' -e ':a;' -e 'N;/password *:/!ba;' -e 's/\(value *: *\)"[^"]*/\1"66666/;s/\(password *: *\)"[^"]*/\1"66666/;}' test.txt
name: "user"
value: "66666"
username: "test"
value: "77777"
password : "66666"
sed
是一個流編輯器,默認情況下它會讀取並分別處理每一行。
在這里,我使用N
讀取並追加了下一行,並替換了其中的內容。
我刪除了-i
switch,因此您可以先在shell上對其進行測試,然后在結果看起來還可以的時候將其添加回去。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.