awk: 繰り返し回数と数量を昇順で計算します。

awk: 繰り返し回数と数量を昇順で計算します。

awkでは、タブ区切りのファイルに重複した値を数え、昇順に番号を付け直す必要があります。

列3の行を比較する必要があります。一致するものがない場合、tss1 は列 5 に印刷されます。それ以外の場合は、tss1、tss2、tss3などが5列に印刷されます。

私の試み:awk -F'\t' '{$3=$3"\t" "tss"++cnt} 1' file

Input file <tab separated>
chrX    Gripap1 7367120 7367120
chrX    Pim2    7455431 7455431
chrX    Pola1   90877494    90877494
chrX    Pcyt1b  *90900201*  90900201
chrX    Pcyt1b  *90900201*  90920450

出力

Output file <tab separated>
chrX    Gripap1 7367120 7367120     tss1
chrX    Pim2    7455431 7455431     tss1
chrX    Pola1   90877494    90877494     tss1
chrX    Pcyt1b  *90900201*  90900201     tss1
chrX    Pcyt1b  *90900201*  90920450     tss2

ベストアンサー1

次のスクリプトがawk機能するはずです。

NR == 1 { print }
NR > 1 {
  if( $3 == last ) {
    count++
  } else {
    count = 1
  }
  last = $3
  print $1, $2, $3, $4, "tts" count
}

OFSデフォルトはタブ文字で、タブで区切られた入力はタブ文字でも機能します。したがって、次のawkスクリプトを使用してくださいscript.awk

$ awk -f script.awk inputfile

おすすめ記事