特定のデータで各地域を一意に並べ替え、親ヒット数だけを印刷できますか?
与えられたデータ
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