我想用字符串变量更改一个字符串。字符串由'"+a+"'
组成(这恰好是字符串,没有添加任何引号。例如,具有字符串"foo"
和字符串foo
的示例是第二个foo
)
是否可以使用sed
命令更改它?
我想用一个变量替换它。我已经试过了:
sed "s#'"+a"'#${var}#"
sed "s#'\"+a\"'#${var}#"
sed "s#'[\"]+a[\"]'#${var}#"
谢谢您的回答!
可以使用BSD sed(例如macOS):sed "s/\'\"\+\a\+\"\'/$var/g"
这很丑,但它可以工作(GNU sed):sed "s/[\'][\"][\+]a[\+][\"][\']/$var/g"
也许也使用变量进行搜索。
var=_FOO_
search=$'\'"+a+"\''
echo "mama${search}papa" | sed "s#${search}#${var}#"
输出
mama_FOO_papa
$' '
是bash样式的引用。
search=$'\'"+a+"\''; echo "$search"
输出
'"+a+"'