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