我想使用awk在多个文件中搜索模式,但从文件中排除一些模式
这是我试过的代码
BEGIN { print "Begin Processing of various Records"}
/Type.*ABC/ {a=1} /999/{a=0; if (a==1) print a;}
END { print "Process Complete" }
例子:
这是文件示例
Resources:
CODE:
Type: "ABC::DEF::AVC"
Type: "ABC::DEF::999"
Type: "ABC::DEF::ZZZ"
现在假设我有文件排除内容
999
888
ZZZ
现在,我希望显示匹配第一个模式的所有行,但如果找到任何来自排除的模式则排除。
这是你想要做的吗?
$ awk -F'[:"]' 'NR==FNR{a[$0];next} /Type.*ABC/ && !($(NF-1) in a)' excludes file
Type: "ABC::DEF::AVC"
如果您的数据在'd'文件中,请尝试gnu awk:
awk '/Type.*ABC/ && $0 !~ /999|888|ZZZ/' d