我有一个文件,file1.txt,其数据格式如下:
EMERGE-3 16218877 0 0 2 -9
EMERGE-3 16230920 0 0 1 -9
EMERGE-8 16220003 0 0 1 -9
EMERGE-9 16231695 16220014 16220010 1 -9
EMERGE-11 16218001 0 0 1 -9我有另一个文件file2.txt,它的I列表格式如下:
16230920
16220014
16218001
16218877我只想在file1.txt的第2列上执行grep搜索。因此,搜索的输出如下:
somecommand file1 file2
EMERGE-3 16230920 0 0 1 -9
EMERGE-11 16218001 0 0 1 -9
EMERGE-3 16218877 0 0 2 -9(注意,输出中没有包含行EMERGE-9 16231695 16220014 16220010 1 -9 )。这是我现在面临的主要问题。如果我执行以下命令:
grep -f file2.txt file1.txt
输出将包括行EMERGE-9 16231695 16220014 16220010 1 -9,因为ID 16220014位于file1.txt的第3列,但我试图避免在输出中包括这一行-也就是说,我只想在file1.txt的第2列中搜索ID。
发布于 2018-04-09 15:46:02
遵循awk可能会帮助您在同样的。
awk 'FNR==NR{a[$0];next} ($2 in a)' file2.txt file1.txthttps://stackoverflow.com/questions/49736686
复制相似问题