Shell 如何在另一个不存在的文件中搜索一个文件的内容
我有一个文件(FILEA),它有1000000个IMEI编号。我有另一个文件(FILEB),它的记录是fILEA记录的5倍多。这意味着500万行Shell 如何在另一个不存在的文件中搜索一个文件的内容,shell,unix,grep,command,Shell,Unix,Grep,Command,我有一个文件(FILEA),它有1000000个IMEI编号。我有另一个文件(FILEB),它的记录是fILEA记录的5倍多。这意味着500万行 FILEA如下所示: 1234567790 4567834456 5566898954 5656788856 1234567790 ABABDHKDHDJS 2222222222 RHJEOSBHOWHW 5566898954 DGJRIWCNISKS 5656788856 GHEUNDBUEOKK FILEB如下所示: 1234567790 45
FILEA
如下所示:
1234567790
4567834456
5566898954
5656788856
1234567790 ABABDHKDHDJS
2222222222 RHJEOSBHOWHW
5566898954 DGJRIWCNISKS
5656788856 GHEUNDBUEOKK
FILEB
如下所示:
1234567790
4567834456
5566898954
5656788856
1234567790 ABABDHKDHDJS
2222222222 RHJEOSBHOWHW
5566898954 DGJRIWCNISKS
5656788856 GHEUNDBUEOKK
现在我想要所有的IMEI列表,它们不在FILEA中
所以我的输出应该是另一个文件,如下所示
FILEC
看起来像
2222222222 RHJEOSBHOWHW
像下面这样的东西,你也可以工作得更快
grep -f File_1 File_2 > File_3
这里有一种使用awk的方法:
awk 'FNR==NR { a[$1]; next } !($1 in a)' filea fileb > filec
结果:
2222222222 RHJEOSBHOWHW
嗨,史蒂夫,谢谢你的评论。然而,它给了我以下的错误。awk:第1行附近的语法错误awk:在第1行附近跳出1@user2642751:使用
gawk
、mawk
和nawk
对我来说效果很好。您使用的是什么风格和版本的awk
?@user2642751:只是随机猜测,但您使用的是Solaris吗?如果是这样,您可能需要使用/usr/xpg4/bin/awk
而不是awk
。无论如何,如果我是你,我会尽快安装GNUawk
。从长远来看,这将节省大量时间/精力。在这种情况下,@user2642751因为您是新来的,如果您的问题已经解决,请不要忘记标记接受的答案。您可以点击答案旁边的复选标记,将答案从空心切换为绿色。看看你是否有任何疑问!