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!!'