Regex 在SED中使用包含正则表达式的变量
我正在尝试删除匹配特定图案的线条。 我的模式存储在一个变量中Regex 在SED中使用包含正则表达式的变量,regex,unix,sed,pattern-matching,Regex,Unix,Sed,Pattern Matching,我正在尝试删除匹配特定图案的线条。 我的模式存储在一个变量中 sed "/${iceclone_id_comb}/d" ${held_file_path}${held_file_name} > ${outputpath}Tempout.dat 但这是行不通的。图案未匹配,且未删除任何线条 ${iceclone\u id\u comb}的值如下 300307569730.*006 30030542783.*006 然而,如果我硬编码,那么它将工作 sed '/300307569730.*0
sed "/${iceclone_id_comb}/d" ${held_file_path}${held_file_name} > ${outputpath}Tempout.dat
但这是行不通的。图案未匹配,且未删除任何线条
${iceclone\u id\u comb}的值如下
300307569730.*006
30030542783.*006
然而,如果我硬编码,那么它将工作
sed '/300307569730.*006/d' ${held_file_path}${held_file_name} > ${outputpath}Tempout.dat
操作系统详细信息
sshuser@hn0-iceprd:~/ProdHeld_April30$ uname -a
Linux hn0-iceprd 4.4.0-119-generic #143-Ubuntu SMP Mon Apr 2 16:08:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
sshuser@hn0-iceprd:~/ProdHeld_April30$ echo $SHELL
/bin/bash
.@TomG
iceclone\u id\u comb
变量只有300307569730.*006
或者它也有300305422783.*006
?当您使用第一个sed命令时,是否有任何错误?@Sundeep此命令在while循环中运行。这两个值在不同的迭代中分配给变量OK。。尝试创建一个我们可以测试的样本。。例如:创建一个包含5个单词的小文件,创建一个循环,将两个不同的正则表达式分配给一个变量,并查看匹配行是否被删除。。如果这样做有效,那么尝试将示例更改为更接近您的实际用例在sed
之前放置一个set-x
,以检查传递给sed的搜索字符串是否符合您的期望。