sed/awk/grep删除文本文件中除匹配模式之外的所有内容
嗨,我有一个文件let pattern.txt 包含 模式1 模式2 模式3 模式4 另一个文本文件let(complex.txt) 包含行作为 路径:XXXXXXXXXXXXXXXXXXXXXX(XXXXXXXXX,'pattern1/2/3/4')XXXXXXXXXXXXXX 路径:XXXXXXXXXXXXXXXXXXXXXX(XXXXXXXXX,'pattern1/2/3/4')XXXXXXXXXXXXXX 路径:XXXXXXXXXXXXXXXXXXXXXX(XXXXXXXXX,'pattern1/2/3/4')XXXXXXXXXX 现在的问题是:::我必须通过将pattern.txt与complex.txt匹配来获得另一个文件filter.txt,其中将包含一行 路径:模式1/2/3/4 我试过了…但是我没有得到 有人能帮忙吗?…谢谢你的帮助。pattern.txt包含哪种类型的正则表达式(Basic、extended、perl?) 如果扩展,只需使用awk:sed/awk/grep删除文本文件中除匹配模式之外的所有内容,sed,awk,command,terminal,grep,Sed,Awk,Command,Terminal,Grep,嗨,我有一个文件let pattern.txt 包含 模式1 模式2 模式3 模式4 另一个文本文件let(complex.txt) 包含行作为 路径:XXXXXXXXXXXXXXXXXXXXXX(XXXXXXXXX,'pattern1/2/3/4')XXXXXXXXXXXXXX 路径:XXXXXXXXXXXXXXXXXXXXXX(XXXXXXXXX,'pattern1/2/3/4')XXXXXXXXXXXXXX 路径:XXXXXXXXXXXXXXXXXXXXXX(XXXXXXXXX,'patt
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
上面的代码依赖于complex.txt中“path:”和行的其余部分之间的空格