簡體   English   中英

使用 sed 命令在字符串變量中查找和替換 - shell 腳本

[英]Find and replace inside a string variable using sed command - shell scripting

假設我有一個字符串變量變量

var="This line is with OldText"

我想查找並替換此變量中的文本我嘗試過的方法是,

echo $var | sed -i "s/OldText/NewText/g"  >> result.log

在這種情況下,這會給出一個錯誤,說“沒有輸入文件”。 預期輸出為 ,

"This line is with NewText"

使用 sed、awk 或任何其他方法執行此操作的正確方法是什么。

使用sed

$ var=$(sed "s/OldText/NewText/" <<< $var)
$ echo $var
This line is with NewText

您不使用-i ,因為那是為了更改文件。 如果要替換變量中的值,則需要重新分配給它。

如果您使用的是 Bash shell,您可以:

$ echo ${var/OldText/NewText}
This line is with NewText

所以

$ var=${var/OldText/NewText}

有關更多信息,請參閱

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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