我有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脚本时,它可以完成。该错误显示为“语法错误”(“
有什么想法解决这个问题并完成目标吗?
答案 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