Temukan file dengan ekstensi tertentu


67

Bagaimana saya dapat menggunakan finduntuk menemukan semua file yang memiliki .xlsatau .csvekstensi? Saya telah melihat -regexopsi tetapi saya tidak tahu bagaimana menggunakannya.

Jawaban:


115

Mengapa tidak menggunakan ini saja:

find -name "*.xls" -o -name "*.csv"

Anda tidak perlu regex untuk ini.

Jika Anda benar-benar ingin menggunakan regex cukup gunakan

find -regex ".*\.\(xls\|csv\)"

8
Jawaban yang lebih baik dari saya. +1.
Paul Tomblin

1
Mengapa backslash diperlukan sebelum tanda kurung? Saya tahu itu tidak akan berhasil tanpanya, tetapi sepertinya memang seharusnya begitu.

1
karena mereka adalah emacs regular expressions secara default. gunakan -regextype untuk mengubahnya.

4
Sebagai catatan: Saya tidak pernah dapat mengingat alat mana yang ingin "\ (" untuk pengelompokan dan yang ingin "(". Saya selalu harus mencobanya untuk mengetahuinya.
Joachim Sauer

1
contoh regex tidak berfungsi
hostmaster

12
find . \( -name  \*.xls -o -name \*.csv \) -print

Tidak tahu tentang opsi -o. Terima kasih!

1
Apakah itu membutuhkan tanda kurung? Temukan . '(' -name * .xls -o -name * .csv ')' - print

@Adrian - tidak, tidak. Saya tidak yakin apakah perlu parens pada non-GNU menemukan di mana "-print" belum menjadi tindakan default.
Paul Tomblin

5
Yah, GNU find (default pada ubuntu 11.04) bekerja dengan benar dengan parens dan -print ATAU tanpa (parens dan -print). Tetapi find . -name \*.xls -o -name \*.csv -printoutput hanya file yang cocok dengan .csv,
bbaja42

Kau benar, aku butuh orangtua.
Paul Tomblin
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.