我试图将搜索模式作为sed的路径传递,但它没有采用路径名。它将错误显示为“sed:command乱码”。这是使用过的代码,
sed -e "/$node/s/^/#/" /etc/inittab > /etc/inittab.new && sudo mv /etc/inittab.new /etc/inittab
这里我将搜索模式传递为“opt / product / BETA / scp_install / bin / startBETAscp”,我收到错误为“sed:command乱码:/(opt / product / BETA / scp_install / bin / startBETAscp)/ S / ^ /#/“
请建议我,如何将变量的内容用于搜索。
答案 0 :(得分:3)
使用sed,您可以/pattern/
检查正则表达式匹配,/
可以是除/ (slash)
以外的字符。格式为\@pattern@
(此处@
为示例)。所以你的行将是:
sed "\@$node@s/^/#/" ....
kent$ (master|✔) v="a/b/c"
kent$ (master|✔) sed "\@$v@s/^/#/" <<< "foo
dquote> a/b/c"
foo
#a/b/c