特定の列の固有値を出力し、残りの列を次の行に出力する方法

特定の列の固有値を出力し、残りの列を次の行に出力する方法

TSVファイルの処理にawkを使用したいです。これが私の入力です。

scaffold1   1   100 
scaffold1   101 200
scaffold1   201 300
scaffold2   1   100
scaffold2   201 500
scaffold3   10  500
scaffold4   10  300

予想出力:

Feature scaffold1
1   100
101 200
201 300
Feature scaffold2
1   100
01  500
Feature scaffold3
10  500
Feature scaffold4
10  300

uniqコマンドを使用して最初の列を印刷するには、uniqとsortとawkを試しましたが、最初の列の一意の値をすべて印刷し awk '!seen[$1]++ Input.txt てから残りの列を印刷できますが、最初の一意の値を印刷したいと思います。 next と残りの列行は上の図のようになります。

これを行う方法があるかどうかを教えてください。

ベストアンサー1

使用awk:

awk '!seen[$1]++ {print "Feature",$1} {print $2,$3}' file
Feature scaffold1
1 100
101 200
201 300
Feature scaffold2
1 100
201 500
Feature scaffold3
10 500
Feature scaffold4
10 300

おすすめ記事