我有两个文件。其中之一是包含许多列的主文件。另一个包含关于样本列表的信息。现在我想将主文件分成2部分,基于该样本(行)是否在第二个文件列表中。现在我使用如下代码
awk 'NR == FNR {a[$1]; next} !($1 in a)' $i.list $i > no_in_list.$i
排除列表中的样本,但我想知道是否可以保留列表中的样本。
您可以使用print >> "file"
动作在指定的文件中打印,而不是标准输出(使用GNU awk测试):
awk -v nil="no_in_list.$i" -v il="in_list.$i" '
NR == FNR {a[$1]; next}
!($1 in a) {print >> nil}
($1 in a) {print >> il}' $i.list $i