Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 在SED中使用包含正则表达式的变量_Regex_Unix_Sed_Pattern Matching - Fatal编程技术网

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的搜索字符串是否符合您的期望。