假設我有一個字串變數變數
var="This line is with OldText"
我想查找并替換此變數中的文本我嘗試過的方法是,
echo $var | sed -i "s/OldText/NewText/g" >> result.log
在這種情況下,這會給出一個錯誤,說“沒有輸入檔案”。預期輸出為 ,
"This line is with NewText"
使用 sed、awk 或任何其他方法執行此操作的正確方法是什么。
uj5u.com熱心網友回復:
使用sed
$ var=$(sed "s/OldText/NewText/" <<< $var)
$ echo $var
This line is with NewText
uj5u.com熱心網友回復:
您不使用-i,因為那是為了更改檔案。如果要替換變數中的值,則需要重新分配給它。
uj5u.com熱心網友回復:
如果您使用的是 Bash shell,您可以:
$ echo ${var/OldText/NewText}
This line is with NewText
所以
$ var=${var/OldText/NewText}
有關更多資訊,請參閱此。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/478548.html
