Saya ingin mencari semua file yang nama jalurnya berisi beberapa kata (word1
, word2
), tanpa urutan tertentu di antara mereka.
Contoh file yang cocok adalah:
word1bar/fooword2/myfile
fooword2/word1bar/myfile
fooword2/bar/word1myfile
Perintah apa yang dapat menyelesaikan tugas?
Saya kira beberapa perintah seperti ini akan berhasil:
find . -regex regexpattern
Terima kasih.
Solusi saya dengan locate
adalah Meningkatkan pencarian file dengan nama path dengan locate dan grep pipeline
Jawaban yang Diterima:
Sulit dilakukan dengan satu pola (regex atau shell), tetapi karena find
dapat mengambil beberapa kondisi, kita dapat menggunakan
find . -type f -path "*word1*" -path "*word2*" ...
Di regex, Anda harus menentukan semua permutasi kata yang berbeda, seperti .*word1.*word2.*|.*word2.*word1.*
(ERE atau Perl RE saja), dan itu akan meledak dengan cepat jika Anda memiliki lebih dari dua kata yang ingin Anda temukan.