测试 file1 中的值是否包含在另一个文件的第 5 列中

测试 file1 中的值是否包含在另一个文件的第 5 列中

我有 2 个文本文件: file1 仅包含一列和一系列 id 值; file2 包含许多列。我需要检查file1的值是否包含在file2的column2中; file1的值只需包含在file2的column2的值中,例如:347588 file1 -> 1000347588 file2。这将是一场比赛;-)

多谢!

答案1

如果您的文件以空格分隔,请使用awk

awk '
    NR==FNR{s[$0]=1}
    NR!=FNR{for (v in s){ if ($2 ~ v) { print; next; }}}
' file1 file2
  • $0将file1 的rows() 保存为 array 中的键s
  • 对于第二个文件,检查$2是否匹配任何键s,如果是,则打印该行。
  • 转到next匹配后的行以防止同一行出现重复。

相关内容