sed具有变量名称的搜索模式并对其进行评论

时间:2016-12-16 14:44:53

标签: regex sed

我的文件包含如下所示的行

AncestorType=Window

我分配了变量,

target          /test/purpose/for/firstunit chapter
target      /test/purpose/for/firstunit chapter

并尝试对包含此变量值的行进行注释

i="/test/purpose/for/firstunit"

但它不起作用。不知道这里缺少什么。

2 个答案:

答案 0 :(得分:3)

sed的另一种方法:

sed -i "s:.*$i:#&:" file_name

将前导#添加到包含$i值的行。

答案 1 :(得分:1)

由于您使用的模式包含斜杠/,因此sed命令总体上会收到太多斜杠。

因此,只需使用另一个分隔符,例如_

sed "\_${i}_s_^_\#_g" file

让我们测试一下:

$ cat f
target          /test/purpose/for/firstunit chapter
target      /test/purpose/for/firstunit chapter
dad
$ sed "\_${i}_s_^_\#_g" f
#target          /test/purpose/for/firstunit chapter
#target      /test/purpose/for/firstunit chapter
dad