En bash, ejecute shopt -s extglob
(o póngalo en su ~/.bashrc
), y puede usar patrones adicionales que proporcionan expresiones regulares con una sintaxis inusual (heredada de ksh). También puede usar estos patrones en ksh, por supuesto, y también en zsh después setopt ksh_glob
.
$ shopt -s extglob
$ ls /opt/somedir/@(aa|bb|cc|doesnotexist)
/opt/somedir/aa /opt/somedir/bb /opt/somedir/cc
En zsh, puede usar directamente (foo|bar)
como patrón.
% ls /opt/somedir/(aa|bb|cc|doesnotexist)
/opt/somedir/aa /opt/somedir/bb /opt/somedir/cc
Tenga en cuenta que el comando se llama con la ruta completa. Si desea llamar al comando con una ruta corta, deberá cambiar el directorio de alguna manera, y (cd /opt/somedir && somecommand aa bb cc)
es, con mucho, la forma más fácil.
Gilles 'SO- deja de ser malvado'
fuente
Puedes filtrar usando
egrep
:Para buscar todos los archivos de texto:
fuente
Primero, te dirijo a: nunca analices ls , nunca . La forma correcta y canónica de hacer lo que quieres es con find .
Por ejemplo:
Usualmente uso en
-name
lugar de-regex
porque es más simple. Pero una expresión regular se adapta a su caso de uso. Debe ejecutar el comando sin-exec
la primera vez, para asegurarse de que realmente sean los archivos que desea mover / eliminar.fuente