下面是一个示例解决方案,使用Awk命令计算每个唯一值的出现次数,并在两个文件之间匹配值,而不打印匹配行的所有字段:
awk 'FNR==NR { count[$1]++; next } $1 in count { print $1 }' file1.txt file2.txt
解释:
FNR==NR 表示只对第一个文件进行操作,NR 表示当前处理的记录数,FNR 表示当前处理的文件的记录数。因此,当 FNR==NR 时,表示正在处理第一个文件。count[$1]++ 使用数组 count 记录每个唯一值的出现次数。$1 表示当前记录的第一个字段,作为数组的键,++ 表示递增计数。next 关键字表示跳过当前记录,继续处理下一条记录。$1 in count 判断第二个文件的第一个字段是否在 count 数组中存在。如果存在,则打印该字段。请将 file1.txt 和 file2.txt 替换为您要处理的实际文件名。
下一篇:AWK - 基于正则表达式添加值