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.