我有以下文件:
transcr_15824 -
YML042W -
transcr_18545 -
YCR105W +
transcr_16934 +
YDR032C +
transcr_15237 +
YDL008W -
我确实需要类似这样的东西:
transcr_15824 -
YML042W -
Match
transcr_18545 -
YCR105W +
Not
transcr_16934 +
YDR032C +
Match
transcr_15237 +
YDL008W -
Not
编辑:基本上我需要比较每两行的第二列。如果第一行的第二列与第二行的第二列匹配,则匹配。如果第一行的第二列与第二行的第二列不匹配,则不匹配。
答案1
这是一种方法:
$ awk '{print} !(NR%2){if($2 == last) print "Match"; else print "Not"} {last = $2}' file
transcr_15824 -
YML042W -
Match
transcr_18545 -
YCR105W +
Not
transcr_16934 +
YDR032C +
Match
transcr_15237 +
YDL008W -
Not
答案2
perl -pae '($_ .= <>) .= qw/NO MATCH/[0+/\n.*\s\Q$F[1]\E$/] . $/' input
在自动分割模式下运行 perl。第二个字段是 $F[1],在下一行 <> 中进行比较,并根据 itz 是否存在匹配或不匹配附加到当前行 $_。