次のレコードがあります。これで、列4の最大値を見つけてそのレコード行を印刷する必要があります。
2017122600|0|0|0|0|0|0|0|0|0|0|0|0
2017122601|0|0|0|0|0|0|0|0|0|0|0|0
2017122602|0|0|0|0|0|0|0|0|0|0|0|0
2017122603|0|0|0|0|0|0|0|0|0|0|0|0
2017122604|0|0|0|0|0|0|0|0|0|0|0|0
2017122605|0|0|0|0|0|0|0|0|0|0|0|0
2017122606|0|0|0|0|0|0|0|0|0|0|0|0
2017122607|0|0|0|0|0|0|0|0|0|0|0|0
2017122608|0|0|0|0|0|0|0|0|0|0|0|0
2017122609|0|0|1|0|0|0|0|0|0|0|0|0
2017122610|0|0|0|0|0|0|0|0|0|0|0|0
予想される出力は次のとおりです。
2017122609|0|0|1|0|0|0|0|0|0|0|0|0
答え1
sort
+head
解決策:
sort -t'|' -k4nr file | head -1
-t'|'
-|
フィールド区切り文字として扱われます。-k4nr
-4
番目のフィールドの番号に基づいて逆順にn
並べ替えr
出力:
2017122609|0|0|1|0|0|0|0|0|0|0|0|0
答え2
awkを使用すると、次のように適しています。
awk -F'|' '$4>max{max=$4;r=$0}END{print r}' file