с awk
и друзьями
$ sort -t';' -k2,2 -k5,5nr file |
awk -F';' '!a[$2]++{print $1 "\t" $2,$NF}' |
sort -n |
cut -f2-
clientid price
fooclient 100
AXISX 75000
Fcebook 65000
booclient 200
xyzzycompany 35000
testclient 25000
Mouccccccc 300
Deeccccccc 10
ICICT 45000
конечно, вы также можете делать все в awk
.
без поддержки заказа (предполагается, что цены> 0)
$ awk -F';' 'a[$2]<$NF {a[$2]=$NF}
END {for(k in a) print k,a[k]}' file
clientid price
fooclient 100
ICICT 45000
Deeccccccc 10
xyzzycompany 35000
Fcebook 65000
testclient 25000
booclient 200
Mouccccccc 300
AXISX 75000
Если вам просто нужен клиент по самой высокой цене, вам не нужна вся эта сложность
$ sort -t';' -k5,5nr file | sed 1q | cut -d';' -f2
AXISX