列の一意の降順

列の一意の降順

特定のデータで各地域を一意に並べ替え、親ヒット数だけを印刷できますか?

与えられたデータ

aza1 18
bcn1 16
sat2 12
lcy2 12
fra1 12
aza1 12
bcn1 10
sat2 8
lcy2 9
fra1 13
aza1 21
bcn1 2
sat2 10
lcy2 0
fra1 1

希望の出力

aza1 21
bcn1 16
sat2 12
lcy2 12
fra1 13

ベストアンサー1

順序が重要な場合、解決策は次のものを使用することです。タイプそしてユニーク

<INPUT_FILE sort -k 1,1 -k 2nr,2 | uniq -w4

出力:

aza1 21
bcn1 16
fra1 13
lcy2 12
sat2 12

パラメータのソート:

-k:キーベースの並べ替え(この場合は列、-tとペアになります)

-n:数値順に並べ替え

-r:逆順

(オプション)-t:キー区切り記号を変更したい場合(デフォルト:空白)

唯一のパラメータ:

-w:最初のN文字を選択

説明する:

あなたの質問では、最初の列を最初に並べ替えてから2番目の列を並べ替える必要があります。だからそこに-k 1,1続いて-k 2,2。しかし、2番目の鍵(のみ)数字を逆順に並べる必要があります。だから-k 2nr,2

-nまたは-rソートパラメーターが-kパラメーターの外側にある場合、特定のキーではなく入力全体に適用されます。

最後に、唯一の行を見つける必要がありますが、最初の4文字だけが一致します。したがって、ユニクロ-w 4

おすすめ記事