簡體   English   中英

使用sed替換字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM