Gunakan find trunk/messages/ -name "*.po" -exec basename {} .po \;
Contoh dan penjelasan:
Buat beberapa file percobaan:
$ touch test1.po
$ touch test2.po
$ find . -name "*.po" -print
./test1.po
./test2.po
Oke, file ditemukan, termasuk jalur.
Untuk setiap hasil, jalankan basename
, dan hapus bagian .po dari nama
$ find . -name "*.po" -exec basename \{} .po \;
test1
test2
Anda dapat menggunakan -execdir
parameter yang akan mencetak file tanpa path, misalnya:
find . -name "*.po" -execdir echo {} ';'
File tanpa ekstensi:
find . -name "*.txt" -execdir basename {} .po ';'
Lihat:Mengapa perintah find -execdir GNU berperilaku berbeda dari find BSD?
Berdasarkan perintah yang saya temukan di sini:http://www.unixcl.com/2009/08/remove-path-from-find-result-in-bash.html
Anda dapat melakukan ini menggunakan sed
(yang dieksekusi lebih cepat untuk saya, daripada basename
pendekatan):
find trunk/messages/ -name "*.po" | sed 's!.*/!!' | sed 's!.po!!'