在文件 2 中搜索文件 1 中的内容并输出文件 2 列

在文件 2 中搜索文件 1 中的内容并输出文件 2 列

在 file2 中查找 file1 中的内容,输出应包含 file2 中的内容,但包含第二列。

文件1:

DataCreditoEAR.ear
PostSale.ear

文件2:

DataCreditoEAR.ear      /usr/DataCreditoEAR
DatacreditTableAdministrator.ear        /usr/DatacreditTableAdministrator
PostSale.ear    /usr/PostSale

输出:

/usr/DataCreditoEAR
/usr/PostSale

答案1

最简单/最简单的方法是使用grep进行模式匹配,然后awk提取第二个字段。

grep -f File1 File2 | awk '{print $2}'

如果 File1 包含固定字符串而不是正则表达式模式,请使用 grep 的-Faka--fixed-strings选项:

grep -F -f File1 File2 | awk '{print $2}'

答案2

如果 File2 中的字段(列)由制表符分隔,

grep -f File1 File2 | cut -f2

否则,

grep -f File1 File2 | awk '{print $2}'

或者,完全在 awk 中(并且与空白的风格无关):

awk '!flag { a[$1]++ } flag { if (a[$1]) print $2 }' File1 flag=2 File2

相关内容