Los contenidos de mi directorio son
$ ls -lrt
total 0
-rw-r--r-- 1 user1 admin 19 Oct 8 12:31 night.txt
-rw-r--r-- 1 user1 admin 19 Oct 8 12:31 noon.txt
-rw-r--r-- 1 user1 admin 38 Oct 8 12:31 day.txt
Me gustaría enumerar los detalles de los archivos que tienen una palabra en el nombre del archivo como se especifica.
Ejemplo:
$ ls -lrt *day|night*
ls: *day: No such file or directory
bash: night.txt: command not found
Rendimiento esperado
-rw-r--r-- 1 user1 admin 19 Oct 8 12:31 night.txt
-rw-r--r-- 1 user1 admin 38 Oct 8 12:31 day.txt
Cómo enumerar diferentes archivos que coinciden con 2 patrones diferentes, o en resumen, cómo usar regex con ls
, para que pueda ver OR
las partes del nombre de archivo.
Escenario original, hay muchos archivos en el directorio, han acortado el caso para preguntar.
touch day.txt; touch night.txt; ls {*day,night*}
resultadosls: *day: No such file or directory
*{day,night}*
esté más cerca de lo que quiere el OP.No hay ninguna opción
ls
para filtrar el nombre del archivo, pero en la mayoría de los shells hay una extensión globalman bash
/Pattern Matching
ksh
zsh
o:
golpetazo
En cualquiera de estos tres shells puede hacer esto, pero tenga en cuenta que si uno de los casos no coincide con ningún archivo, ese patrón se dejará sin expandir (por ejemplo,
*day* night1.txt othernight.txt
si no hay ningún nombre de archivo que contengaday
; veaman bash
/EXPANSION
o/Brace Expansion
específicamente):En cualquier caparazón puedes hacer:
En zsh, si hay tampoco ninguna
day
onight
archivo, los dos últimos comandos fallará; establezca la opciónnonomatch
ocsh_null_glob
, o agregue(N)
después de cada patrón para evitar esto.fuente
*{day,night}*
. Lo editaría, pero no sé qué shells lo admiten.bash
,ksh
yzsh
(ninguno necesita globing extendido), pero nosh
; sin embargo, el último ejemplo de "todos los proyectiles" de Nahuel funcionash
.Los shells no usan expresiones regulares para la expansión de argumentos.
Puede habilitar la coincidencia de patrones extendidos mediante
y entonces
Consulte, por ejemplo, el Manual de referencia de Bash (coincidencia de patrones)
fuente