如何在Linux中匹配2个文件,一个文件包含1列,第二个文件包含2列

时间:2018-09-04 11:21:55

标签: linux unix awk

我有2个文件。

文件1:

123456789
789465123
456789132

文件2:

r6rg6r6,123456789
dfg4665,789465123
dthegfd,456789132

我需要匹配ID并将其ID打印到文件中

r6rg6r6
dfg4665
dthegfd

我尝试使用awkcmpcommdiff,什么都没有

这是我试图在命令行中运行的命令

awk '(NR==FNR){a[$1]; next}($2 in a){print $1}' file1 file2 > test.csv

1 个答案:

答案 0 :(得分:1)

您尝试过(t-1),它非常强大

grep

或仅grep -F <file1> <file2> | cut -d ' ' -f1

awk

但是,由于您已经尝试过此解决方案,因此由于dos / windows复制,CRLF终止可能会出现问题。虽然您可以使用awk '(NR==FNR){a[$1]; next}($2 in a){print $1}' <file1> <file2> 解决此问题,但也可以使用以下dos2unix行(仅适用于GNU awk):

awk