GNU/Linux >> Belajar Linux >  >> Linux

Mengapa regex ini tidak berfungsi di linux?

GNU find secara default menggunakan ekspresi reguler emacs, Anda dapat mengubah jenisnya dengan -regextype opsi (lihat man find).

Jika Anda menggunakan -regextype posix-egrep ekspresi Anda tampaknya bekerja. Anda mungkin juga dapat mengurangi polanya menjadi ^.+(jpg|gif|exe)$

Dengan emacs:find . -regex '.+\(jpg\|gif\|exe\)$' . Lihat bagian manual emacs ini untuk aturan regex khusus tersebut. Anda harus keluar dari | dan () agar mereka tidak literal.


Di emacs regexps ( , | dan ) literal kecuali lolos, ini kebalikan dari semua format ekspresi reguler lainnya.

Ekspresi Anda berfungsi sebagai ^.+\.\(jpg\|exe\|gif\)$ .


Linux
  1. Mengapa Substitusi Proses Bash Tidak Bekerja Dengan Beberapa Perintah?

  2. Linux – Arch Linux :Pacman Tidak Berfungsi Saat Chroot?

  3. Linux – Mengapa Setuid Tidak Bekerja??

  1. Linux – Mengapa Es_mx Lokal Bekerja Tapi Tidak Es?

  2. Mengapa Tomcat bekerja dengan port 8080 tetapi tidak dengan 80?

  3. Mengapa Windows tidak mengenali file di dalam partisi Linux?

  1. Mengapa Ekspresi Reguler Bekerja Di X Tapi Tidak Di Y?

  2. Pengulangan otomatis tidak berfungsi

  3. Mengapa find -mtime tidak berfungsi seperti yang diharapkan pada file dengan zona waktu berbeda?