【发布时间】:2017-10-13 15:33:52
【问题描述】:
我正在尝试使用awk 删除tab-delimited 文件中的重复行,如果它们具有$2 值是Fusion 并且相同的$4 值在每一行中。在下面的示例中,第 1 行和第 2 行具有相同的 $2 值,并且 $4 值也相同,因此删除了重复的第 2 行。第 3 行和第 4 行也遵循这个逻辑。行数可能是可变的,但格式将是相同的。由于第 5 行和第 6 行在 $2 中没有 Fusion,因此它们被跳过并打印在输出中。谢谢你:)。
文件
chr12:12006495-chr15:88483984 Fusion Gain-of-Function ETV6NTRK3-E4N15 1868
chr15:88483984-chr12:12006495 Fusion Gain-of-Function ETV6NTRK3-E4N15 1868
chr12:12022903-chr15:88483984 Fusion Gain-of-Function ETV6NTRK3-E5N15 414833
chr15:88483984-chr12:12022903 Fusion Gain-of-Function ETV6NTRK3-E5N15 414833
chr10 SNV ....
chr15 SNV ....
awk
awk -F'\t' '{if($2 in a)a[$2]=$2=="Fusion"?$0:a[$4];else a[$4]=$0}END{for(i in a)print a[i]}' file
期望的输出
chr12:12006495-chr15:88483984 Fusion Gain-of-Function ETV6NTRK3-E4N15 1868
chr12:12022903-chr15:88483984 Fusion Gain-of-Function ETV6NTRK3-E5N15 414833
chr10 SNV ....
chr15 SNV ....
【问题讨论】:
标签: awk