在 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 的-F
aka--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