【发布时间】:2016-03-29 00:29:29
【问题描述】:
假设我有一个名为data的文件:
ID_11 0.3 0.5
ID_13 0.5 0.5
ID_14 0.6 0.3
ID_15 0.7 0.8
ID_16 0.9 1.0
我还有另一个文件ID:
ID_11
ID_16
我想删除data 中第一列与ID 匹配的行。想要的输出是这样的:
ID_13 0.5 0.5
ID_14 0.6 0.3
ID_15 0.7 0.8
怎么做?
我在网上找到了一个命令。但不知道对不对。谁能解释一下?
awk 'FNR==NR{a[$1];next} !($1 in a)' ID file
【问题讨论】:
-
先读取ID文件,将ID作为数组的key。然后读取数据文件,检查
$1是否不在数组中,打印该行。 -
@81235 -- 你已经尝试了什么?
-
你也可以只使用
grep -v -f ID data。 -
该命令看起来正确,它有效吗?
-
@Barmar。你能提供关于命令的解释吗?我对 awk 很陌生。