如果行包含awk

时间:2018-01-05 22:27:16

标签: bash awk

目前正在使用,

$ awk 'NR==FNR{a[$1];next} ($3 in a)' find.txt path_to_100_files/*

搜索包含多个文件的目录,用于.txt(find.txt)

中的字符串

find.txt包含

example1
example 2
example@eampol.com
exa exa exa123
...

目录

中的.txt文件示例
example      example       example.com
example 2    example       example     lol

现在它正在搜索第3列中的字符串,使用($ 3 in a)意味着$ 3 =第3列,但有时字符串可以是1美元或5美元等等,我怎样才能让它搜索每一列而不是只是第3个?

1 个答案:

答案 0 :(得分:1)

awk '
NR==FNR{a[$1];next}
{ for (i=1; i<=NF; i++) if ($i in a) { print; next } }
' find.txt path_to_100_files/*

以上假设您现有的脚本在给定exa exa exa123时的行为符合要求。