使用 sed 命令在字符串变量中查找和替换 - shell 脚本
Find and replace inside a string variable using sed command - shell scripting
假设我有一个字符串变量 variable
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}
有关更多信息,请参阅 this。
假设我有一个字符串变量 variable
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}
有关更多信息,请参阅 this。