非常に大きなテーブルがあり、特定の行を抽出する必要があります。簡単な例として、これを説明します。私はリンゴ、バナナ、オレンジの重量を量ったとしましょう。リンゴ、バナナ、オレンジの最小重量を抽出する必要があります。
元のテーブル:
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
フィールドが単一のタブ文字で区切られていると仮定します。複数のスペースで区切ったり、別のフィールド区切り記号(たとえば、単一のスペース)を定義したりする場合は、次のようにします。1
min
2
-W, --whitespace
-t, --field-separator=
datamash -t' ' -s -g 1 min 2 <infile
入力をソートする必要があるため、datamash
出力も最初のフィールドに基づいてソートされます。