如何过滤掉02文件之间的重复ID

时间:2017-08-21 04:20:03

标签: linux parsing grep

我有02个文本文件,格式如下:

  • 文件1:

    2017-08-16 00:00:00,115 - [INFO]  TRANSACTIONS: 123456788 id: 123456
    2017-08-16 00:00:00,115 - [INFO]  TRANSACTIONS: 123456789 id: 123457
    
  • 文件2:

    123456 123457 123458 123459

目标:我想从file1获取没有id2的记录

我试过的命令行和结果:

  • 第一个命令行:grep -vf file2 file1
  • 第二个命令行:comm -23 <(sort file1) <(sort file2)

这两个命令都有效,但file1中有3百万条记录,file2中有1百万条记录。如果没有太多记录,则第一个命令可以完成,但不能完成3百万个。第二个命令比第一个命令快,当我在ssh控制台中手动执行但它无法使用bash脚本时,它可以完成。该错误显示为“语法错误”(“

有什么想法解决这个问题并完成目标吗?

2 个答案:

答案 0 :(得分:0)

awk 'NR==FNR{a[$1];next} !($NF in a)' file2 file1

答案 1 :(得分:-1)

我找到了使用第二个命令在脚本中使用它的方法:

sort file1 > file1.txt
sort file2 > file2.txt
comm -23 file1.txt file2.txt > result.txt