在unix中查找文件之间的重复数据

时间:2014-04-11 09:06:44

标签: shell unix scripting

我有两个内容文件: -

文件1:

918802944821    919968005200    kushinagar
919711354546    919211999924    delhi
915555555555    916666666666    kanpur
919711354546    915686524578    hehe
918802944821    4752168549  hfhkjh

file2的: -

919211999924    919711354546    ghaziabad
919999999999    918888888888    lucknow
912222222222    911111111111    chandauli
918802944821    916325478965    hfhjdhjd

现在注意number1和number2在file1和file2中互换。我想在屏幕上只打印这个重复的行。更具体一点,我只想在屏幕上打印的数字或行,如8888888888和7777777777一样,在两个文件中是重复的。我只想在屏幕上显示这两个数字或屏幕上的整行。

2 个答案:

答案 0 :(得分:1)

使用awk你可以这样做:

awk 'FNR==NR{a[$1,$2]++;next} a[$2,$1]' f1 f2
7777777777    8888888888    pqr

编辑:根据您编辑的问题,您可以执行以下操作:

awk 'FNR==NR{a[$1]++;b[$2]++;next} a[$1] || b[$1] {print $1} a[$2] || b[$2]{print $2}' f1 f2
919211999924
919711354546
918802944821

答案 1 :(得分:0)

kent$  awk 'NR==FNR{a[$2 FS $1]=1;next}a[$1 FS $2]{print $1,$2}' f1 f2   
7777777777 8888888888