我有一个文件let pattern.txt
包含
模式1
pattern2
pattern3
pattern4
另一个文本文件let(complex.txt)
包含
行路径:XXXXXXXXXXXXXXXXXXXXXXXXXX(XXXXXXXXX,'pattern1 / 2/3/4')XXXXXXXXXXXX
路径:XXXXXXXXXXXXXXXXXXXXXXXXXX(XXXXXXXXX,'pattern1 / 2/3/4')XXXXXXXXXXXX
路径:XXXXXXXXXXXXXXXXXXXXXXXXXX(XXXXXXXXX,'pattern1 / 2/3/4')XXXXXXXXXX
现在问题是:::我必须通过匹配pattern.txt到complex.txt来获得另一个文件filter.txt,它将包含一行
路径:模式1/2/3/4 .....
我试过......但我没有得到......
有人可以帮忙......谢谢你...
答案 0 :(得分:2)
pattern.txt包含哪种类型的正则表达式(Basic,extended,perl?)?
如果扩展,只需使用awk:
awk '
FNR==NR{
patterns[$0]++;
next;
}
{
for (el in patterns)
if (match($0,el)) {
print $1 substr($0,RSTART,RLENGTH);
next;
}
}' pattern.txt complex.txt >filter.txt
上面的代码依赖于“path:”和complex.txt中其余行之间的空格。