0
awk
/NM/
のパターンを持つ場合にのみ:p.=
をそれぞれ$7
に追加しようとしています。以下のようになります:が$7
に1行しかない場合は、2行目のようになります。しかし、NM
が$7
に複数ある場合、3行目のように:p.=
が最後に追加されます。 ;
を使用して、フィールド内に複数のNM
を区切ります。私はコメントを追加しましたが、私が何をしていないのか分かりません。ありがとうございました :)。awkはフィールド内の各パターンにテキストを追加します
入力tab-delimited
R_Index Chr Start End Ref Alt Detail.refGene Gene.refGene
1 chr1 948846 948846 - A dist=1 ISG15
2 chr1 948870 948870 C G NM_005101:c.-84C>G ISG15
3 chr1 948921 948921 T C NM_005101:c.-33T>C;NM_005101:c.-84C>G ISG15
4 chr1 949654 949654 A G . ISG15
AWK
awk '
BEGIN { FS=OFS="\t" } # define FS and OFS as tab and start processing
$7 ~ /NM/ { # look for pattern NM in $7
# split $7 by ";" and cycle through them
i=split($7,NM,";")
for (n=1; n<=i; n++) {
sub("$", ":p=", $7) # add :p. to end off each $7 before the ;
} # close block
}1' input # define input file
電流出力tab-delimited
R_Index Chr Start End Ref Alt Detail.refGene Gene.refGene
1 chr1 948846 948846 - A dist=1 ISG15
2 chr1 948870 948870 C G NM_005101:c.-84C>G:p.= ISG15
3 chr1 948921 948921 T C NM_005101:c.-33T>C;NM_005101:c.-84C>G:p.=p.= ISG15
4 chr1 949654 949654 A G . ISG15
所望の出力tab-delimited
R_Index Chr Start End Ref Alt Detail.refGene Gene.refGene
1 chr1 948846 948846 - A dist=1 ISG15
2 chr1 948870 948870 C G NM_005101:c.-84C>G:p.= ISG15
3 chr1 948921 948921 T C NM_005101:c.-33T>C:p.=;NM_005101:c.-84C>G:p.= ISG15
4 chr1 949654 949654 A G . ISG15
:これで
を?それは機械でも人間に優しいものでもありません。 – karakfa
申し訳ありませんが、私はコードをより読みやすくするためにインデントしましたが、残念なことにファイルタイプがこのように楽器から来ていました。ありがとうございました :)。 – Chris
':p。='ネクタイでうずくまる? :D –