GNU/Linux >> Znalost Linux >  >> Linux

Proč tento regulární výraz nefunguje na linuxu?

GNU find ve výchozím nastavení používá regulární výrazy emacs, tento typ můžete změnit pomocí -regextype možnost (viz man find).

Pokud použijete -regextype posix-egrep zdá se, že tvůj výraz funguje. Pak byste také pravděpodobně mohli zmenšit vzor na ^.+(jpg|gif|exe)$

S emacs:find . -regex '.+\(jpg\|gif\|exe\)$' . Tato specifická pravidla regulárního výrazu naleznete v této části příručky emacs. Musíte escapovat | a () aby nebyly doslovné.


V emacs regexps ( , | a ) jsou doslovné pokud escaped, je to přesný opak všech ostatních formátů regulárních výrazů.

Váš výraz funguje jako ^.+\.\(jpg\|exe\|gif\)$ .


Linux
  1. Proč substituce procesu Bash nefunguje s některými příkazy?

  2. Linux – Arch Linux:Pacman nefunguje při Chrootingu?

  3. Linux – Proč Setuid nefunguje?

  1. Linux – Proč Locale Es_mx funguje, ale Es ne?

  2. Proč to „při čtení“ funguje v terminálu, ale ne ve skriptu Shell?

  3. Proč nefungují úpravy javascriptu v nástrojích pro vývojáře Chrome?

  1. Proč 'dd' nefunguje pro vytvoření bootovatelného USB?

  2. ZFS pod Linuxem, funguje to?

  3. Autorepeat nefunguje