Según las páginas de manual, deberíamos poder utilizar regex con el sistema nativo find
comando así:
find -E /Volumes/complete -regex "(?i).*frontline.*"
Sin embargo, falla. He probado bastantes variaciones que también han fallado.
find -E /Volumes/complete -regex "\.*frontline.*\i"
find -E /Volumes/SeedDrive/complete -regex "(?i:.*frontline.*)" find: -regex: (?i:.*frontline.*): repetition-operator operand invalid
find -E /Volumes/SeedDrive/complete -regex "(\?i:.*frontline.*)"
find /Volumes/SeedDrive/complete -regex "*[fF]rontline.*"
No entiendo por qué, pero las comillas simples sí funcionan:
find -E /Volumes/SeedDrive/complete -regex '.*[fF]rontline.*'
encuentra "frontline" o "Frontline"
El problema es que también tengo archivos que contienen FRONTLINE, Frontline, frontline.
man find
dice:
Las opciones son las siguientes:
-E Interpret regular expressions followed by -regex and -iregex primaries as extended (modern) regular expressions rather than basic regular expressions (BRE's). The re_format(7) manual page fully describes both formats.
man re-format
dice"
Opciones en línea (disponibles sólo para las ER ampliadas mejoradas) Al igual que el modo literal en línea mencionado anteriormente, se pueden activar y desactivar otras opciones para parte de un RE. (?o..)' activará las opciones especificadas en o.. (uno o más caracteres de opciones; véase más adelante), mientras que '(?-o..)' desactivará las opciones especificadas, y '(o..)'. desactivará las opciones especificadas, y '(?o1..-o2..)' activará el primer conjunto de conjunto de opciones, y desactivará el segundo conjunto.
The available options are: i Turning on this option will ignore case during matching, while turning off will restore case-sensitive matching. If REG_ICASE was specified to regcomp(), this option can be use to turn that off.
...
El alcance del cambio de opción comienza inmediatamente después del derecho pero hasta el final de la subexpresión adjunta (si la hay). Así, por ejemplo, dado el RE '(fu(?i)bar)baz', la parte 'fu' coincide con sensible a mayúsculas y minúsculas, 'bar' coincide con insensible a mayúsculas y minúsculas, y 'baz' coincide con sensible a mayúsculas y minúsculas de nuevo (ya que está fuera del ámbito de la subexpresión en que se especificó la opción inline).
The inline options syntax can be combined with the non-capturing parenthesized subexpression to limit the option scope to just that of the subexpression. Then, for example, ‘fu(?i:bar)baz’ is similar to the previous example, except for the parenthesize subexpression around ‘fu(?i)bar’ in the previous example.