最初の列のインデックス値に対応する2番目の列の最小数を探します。

最初の列のインデックス値に対応する2番目の列の最小数を探します。

非常に大きなテーブルがあり、特定の行を抽出する必要があります。簡単な例として、これを説明します。私はリンゴ、バナナ、オレンジの重量を量ったとしましょう。リンゴ、バナナ、オレンジの最小重量を抽出する必要があります。

元のテーブル:

Apple 3
Banana 8
Orange 2
Apple 7
Banana 9
Orange 13
Apple 9
Banana 1
Orange 11

希望の出力:

Apple 3
Banana 1
Orange 2

ベストアンサー1

そしてgnu datamash:

datamash -s -g 1 min 2 <infile
iPhone 3
バナナ1
オレンジ2

このジョブは、stフィールドに基づいてsソートおよびグループ化され、最初のフィールドの各IDのndフィールドの値を印刷します。gフィールドが単一のタブ文字で区切られていると仮定します。複数のスペースで区切ったり、別のフィールド区切り記号(たとえば、単一のスペース)を定義したりする場合は、次のようにします。1min2-W, --whitespace-t, --field-separator=

datamash -t' ' -s -g 1 min 2 <infile

入力をソートする必要があるため、datamash出力も最初のフィールドに基づいてソートされます。

おすすめ記事