Linux grep在两个文件中返回两列

Linux grep在两个文件中返回两列,linux,bash,grep,sh,comm,Linux,Bash,Grep,Sh,Comm,我有一个像这样的大文件: 79597700 79000364 79002794 79002947 79597708|11 79000364|12 79002794|11 79002947|12 79002940|12 还有其他像这样的大文件: 79597700 79000364 79002794 79002947 79597708|11 79000364|12 79002794|11 79002947|12 79002940|12 然后我需要第二个文件中出现的数字,第一个文件bur中的数

我有一个像这样的大文件:

79597700
79000364
79002794
79002947
79597708|11
79000364|12
79002794|11
79002947|12
79002940|12
还有其他像这样的大文件:

79597700
79000364
79002794
79002947
79597708|11
79000364|12
79002794|11
79002947|12
79002940|12
然后我需要第二个文件中出现的数字,第一个文件bur中的数字和第二列,类似于:

79000364|12
79002794|11
79002947|12
79002940|12
(出现在第一个文件和第二个文件中的MSISDN,但我需要返回第二个文件的两列)

谁能帮我,因为grep对我不起作用,因为只返回MSISDN而不返回第二列 不可能使用comm,因为文件中的每一行都不同

请尝试以下操作:

grep -f bigfile1 bigfile2
试试这个:

grep -f bigfile1 bigfile2
试试这个:

grep -f bigfile1 bigfile2
试试这个:

grep -f bigfile1 bigfile2

使用
awk

awk -F"|" 'FNR==NR{f[$0];next}($1 in f)' file file2

来源:

使用
awk

awk -F"|" 'FNR==NR{f[$0];next}($1 in f)' file file2

来源:

使用
awk

awk -F"|" 'FNR==NR{f[$0];next}($1 in f)' file file2

来源:

使用
awk

awk -F"|" 'FNR==NR{f[$0];next}($1 in f)' file file2


资料来源:

类似的问题已经被问了很多次。还有,您尝试过什么?类似于问题:当输出不在第一个文件中时,
79002940
在输出中如何?保留行的顺序是否重要?类似的问题已被多次提出。还有,您尝试过什么?类似于问题:当输出不在第一个文件中时,
79002940
在输出中如何?保留行的顺序是否重要?类似的问题已被多次提出。还有,您尝试过什么?类似于问题:当输出不在第一个文件中时,
79002940
在输出中如何?保留行的顺序是否重要?类似的问题已被多次提出。您也尝试过什么?类似于问题:当
79002940
不在第一个文件中时,它在输出中如何?保留行的顺序是否重要?请注意,如果
bigfile1
包含一行仅包含
3
,它将匹配许多不需要的行。您可能需要对进程替换进行一些奇特的操作(
grep-f是的,没错。解决方法:
sed-n-f@JonathanLeffler
grep-x
会解决这个问题。@o11c:请解释
grep-x
会有什么帮助。@JonathanLeffler它只匹配整行……等等,这不会处理
10
bit.Hm,
grep-w
可能吗?如果
bigfile1
包含一行只包含
3
,它将匹配许多不需要的行。您可能需要对进程替换进行一些奇特的操作(
grep-f是的,没错。解决方法:
sed-n-f@JonathanLeffler
grep-x
会解决这个问题。@o11c:请解释
grep-x
会有什么帮助。@JonathanLeffler它只匹配整行……等等,这不会处理
10
bit.Hm,
grep-w
可能吗?如果
bigfile1
包含一行只包含
3
,它将匹配许多不需要的行。您可能需要对进程替换进行一些奇特的操作(
grep-f是的,没错。解决方法:
sed-n-f@JonathanLeffler
grep-x
会解决这个问题。@o11c:请解释
grep-x
会有什么帮助。@JonathanLeffler它只匹配整行……等等,这不会处理
10
bit.Hm,
grep-w
可能吗?如果
bigfile1
包含一行只包含
3
,它将匹配许多不需要的行。您可能需要对进程替换进行一些奇特的操作(
grep-f是的,没错。解决方法:
sed-n-f@JonathanLeffler
grep-x
会解决这个问题。@o11c:请解释一下
grep-x
会有什么帮助。@JonathanLeffler它只匹配整行代码……等等,这不会处理
10
bit.Hm,
grep-w
可能?