Azt azért vedd figyelembe, hogy awk-nál minden memóriában megy míg a sort a háttérben egy temp file-ba dolgozik.
Nem hiszem, hogy a sorba rendezés és a hash tábla felépítése ugyanannyira lenne költséges, mert a hashnál természetéből fakadóan lehet hatékonyabb tárolást (visszakeresésre és elem beszúrásra optimalizált) csinálni, míg a sorba rendezést egy strukturálatlan adathalmazon kell végrehajtani. Innen fakadnak a hash limitációi is. Ajánlom figyelmedbe a hasító függvények működését.
Nálam egy ~20k soros file-on kb 10szeres az awk előnye.
nns@nnspc:/usr/share/doc/chromium-browser$ wc -l copyright
19231 copyright
nns@nnspc:/usr/share/doc/chromium-browser$ time sort -u copyright >/dev/null
real 0m0.412s
user 0m0.380s
sys 0m0.008s
nns@nnspc:/usr/share/doc/chromium-browser$ time awk '{a[$0]}; END {for (i in a) {print i}}' copyright >/dev/null
real 0m0.034s
user 0m0.020s
sys 0m0.008s