Aha. Most már figyelmesebben elolvastam a scriptet, és tényleg, elég sok "sort" parancs az, ami azért kár, mert sort nélkül is működött volna. A head -1-ről sem értem, hogy minek bele. Azt a $(find blabla) részt ki lehetett volna egy futás után menteni egy $fajlok stringbe, úgy jóval kevesebb find futott volna le.
Ennek ellenére az elvi megoldás érdekes, hogy cut-tal kivágta a szeparátor után az első mezőt. Az mehetett volna mindjárt cut -d ' ' -f1 segítségével, nem volt szükség erre a ' '-ről '_'-re történő köztes átnevezésre. A cut delimiternek megeszik bármilyen karaktert és stringet.