Použijte find trunk/messages/ -name "*.po" -exec basename {} .po \; 
Příklad a vysvětlení:
Vytvořte nějaké testovací soubory:
$ touch test1.po  
$ touch test2.po  
$ find . -name "*.po" -print
./test1.po  
./test2.po
Ok, soubory budou nalezeny, včetně cesty.
 Pro každý výsledek spusťte basename a z názvu odstraňte část .po
$ find . -name "*.po" -exec basename \{} .po \;  
test1  
test2
 Můžete použít -execdir parametr, který by vytiskl soubor bez cesty, např.:
find . -name "*.po" -execdir echo {} ';'
Soubory bez přípon:
find . -name "*.txt" -execdir basename {} .po ';'
Viz:Proč se příkaz GNU find -execdir chová jinak než příkaz BSD find?
Na základě příkazu, který jsem našel zde:http://www.unixcl.com/2009/08/remove-path-from-find-result-in-bash.html
 Můžete to udělat pomocí sed (který pro mě fungoval rychleji než basename přístup):
find trunk/messages/ -name "*.po" | sed 's!.*/!!' | sed 's!.po!!'