入力する
aaaaa|bbbbb|ccccc|ddddd|5|5|4
aaaaa|bbbbb|ccccc|ddddd|10|10|1
wwwww|xxxxx|yyyyy|zzzzz|5|5|2
wwwww|xxxxx|yyyyy|zzzzz|10|10|2
出力
aaaaa|bbbbb|ccccc|ddddd|5|5|
wwwww|xxxxx|yyyyy|zzzzz|10|10|
索引付けに使用されるものは次のとおりです。
列1〜4(例:aaaaa | bbbbb | ccccc | ddddd)
出力ロジックは次のとおりです。
同じインデックスを持つレコードの最後の列を比較して、最後の列の値が高いレコードが出力に印刷されます。
最後の列の同じインデックスを持つレコードを比較して等しい場合、5列と6列の値が大きいレコードを出力します。
ベストアンサー1
sort
単にingを使用して各グループの最初の項目を選択するだけです。
sort filename -t'|' -k1,4 -k7rn -k5,6rn | sort -t'|' -k1,4 -u
結果:
aaaaa|bbbbb|ccccc|ddddd|5|5|4
wwwww|xxxxx|yyyyy|zzzzz|10|10|2
これは何のためであるか。
-t'|'
フィールド区切り記号を次のように設定します。|
-k1,4
最初の4つのフィールドに基づいてソート-k7rn
次に、7番目のフィールドで逆方向と数値比較を実行します。-k5,6rn
それでは五番目、六番目のゲームも同じだ。|
他のタイプに渡す-k1,4 -u
-u
最初の4つのフィールドの一意性を示します。
したがって、全体の操作は、目的の行が最初の4つのフィールドグループに最初に表示されるように、必要な方法でファイルを並べ替えることと同じです。次に、各グループの最初の行を取得します。