Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 如何在另一个不存在的文件中搜索一个文件的内容_Shell_Unix_Grep_Command - Fatal编程技术网

Shell 如何在另一个不存在的文件中搜索一个文件的内容

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),它有1000000个IMEI编号。我有另一个文件(FILEB),它的记录是fILEA记录的5倍多。这意味着500万行

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
。无论如何,如果我是你,我会尽快安装GNU
awk
。从长远来看,这将节省大量时间/精力。在这种情况下,@user2642751因为您是新来的,如果您的问题已经解决,请不要忘记标记接受的答案。您可以点击答案旁边的复选标记,将答案从空心切换为绿色。看看你是否有任何疑问!