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@JonathanLefflergrep-x
会解决这个问题。@o11c:请解释grep-x
会有什么帮助。@JonathanLeffler它只匹配整行……等等,这不会处理10
bit.Hm,grep-w
可能吗?如果bigfile1
包含一行只包含3
,它将匹配许多不需要的行。您可能需要对进程替换进行一些奇特的操作(grep-f是的,没错。解决方法:sed-n-f@JonathanLefflergrep-x
会解决这个问题。@o11c:请解释grep-x
会有什么帮助。@JonathanLeffler它只匹配整行……等等,这不会处理10
bit.Hm,grep-w
可能吗?如果bigfile1
包含一行只包含3
,它将匹配许多不需要的行。您可能需要对进程替换进行一些奇特的操作(grep-f是的,没错。解决方法:sed-n-f@JonathanLefflergrep-x
会解决这个问题。@o11c:请解释grep-x
会有什么帮助。@JonathanLeffler它只匹配整行……等等,这不会处理10
bit.Hm,grep-w
可能吗?如果bigfile1
包含一行只包含3
,它将匹配许多不需要的行。您可能需要对进程替换进行一些奇特的操作(grep-f是的,没错。解决方法:sed-n-f@JonathanLefflergrep-x
会解决这个问题。@o11c:请解释一下grep-x
会有什么帮助。@JonathanLeffler它只匹配整行代码……等等,这不会处理10
bit.Hm,grep-w
可能?