【发布时间】:2013-02-05 15:06:12
【问题描述】:
我有一个文件(file1),其中包含一些 ID,例如 ns:m.050fh(每行一个 ID,我不能在此处使用正则表达式)。
我需要打印第二个文件中的行(file2,csv,以制表符分隔),其中第二个文件的第一列 = 第一个文件中的某个 ID。
是否可以使用 awk 或 grep?
类似(伪代码):
awk -F'\t' '$1 == $(file1)' file2
【问题讨论】:
我有一个文件(file1),其中包含一些 ID,例如 ns:m.050fh(每行一个 ID,我不能在此处使用正则表达式)。
我需要打印第二个文件中的行(file2,csv,以制表符分隔),其中第二个文件的第一列 = 第一个文件中的某个 ID。
是否可以使用 awk 或 grep?
类似(伪代码):
awk -F'\t' '$1 == $(file1)' file2
【问题讨论】:
试试这个:
awk -F'\t' 'NR==FNR{a[$0];next} $1 in a' file1 file2
file1 是 ID 文件。
上面的行将打印file2中的所有行,id存在于file1中。
【讨论】: