繁体   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