Regex 需要将搜索模式动态传递给sed
我试图在Regex 需要将搜索模式动态传递给sed,regex,sed,Regex,Sed,我试图在s/SearchPattern/ReplacePattern/操作中将搜索模式动态地传递给sed,但它没有像使用直接parttern值的相同操作那样使用可变内容。 这是使用过的代码 # assuming node='pcrf' sed -e '/"$node"/s/^/#/' inittab > inittab.new && mv inittab.new inittab 同样的搜索,但使用litterla模式正在工作 sed -e '/pcrf/s/^/#/' i
s/SearchPattern/ReplacePattern/
操作中将搜索模式动态地传递给sed,但它没有像使用直接parttern值的相同操作那样使用可变内容。
这是使用过的代码
# assuming node='pcrf'
sed -e '/"$node"/s/^/#/' inittab > inittab.new && mv inittab.new inittab
同样的搜索,但使用litterla模式正在工作
sed -e '/pcrf/s/^/#/' inittab > inittab.new && mv inittab.new inittab.
因此,请建议我如何在搜索中使用变量的内容。尝试一下:
sed -e "/$node/s/^/#/" inittab >. ...
添加测试
以下是它的工作原理:
kent$ v=1
kent$ seq 15|sed "/$v/s/^/#/"
#1
2
3
4
5
6
7
8
9
#10
#11
#12
#13
#14
#15
这是因为你必须使用双引号。否则,变量将不会展开。我只使用了双引号。请澄清我们必须在哪里使用双引号。
sed-e'…'
不是双引号。另外,您应该给出一些示例输入文件和所需的输出,否则这有点模糊。