最初の列にIDがあり、2番目の列に数値を持つテーブルファイルがあります。各IDのスコアが最も高い行のみを含むファイルを生成する必要があります。
だから私はこれを取りたいと思います:
ES.001 2.33
ES.001 1.39
ES.001 119.55
ES.001 14.55
ES.073 0.35
ES.073 17.95
ES.140 1.14
ES.140 53.88
ES.140 18.28
ES.178 150.27
そしてこれを生成します:
ES.001 119.55
ES.073 17.95
ES.140 53.88
ES.178 150.27
Bashコマンドラインでこれを行う方法はありますか?
ベストアンサー1
sort
数値の降順で最初のフィールドでソートし、2番目のフィールドでソートするために使用されます。各固有の最初のフィールド値の最初の行のみを印刷するには、Awkを使用します。
sort -k1,1 -k2rn inputfile | awk '!a[$1]++'