Por qué es complicado:
* Globbing básico: Las conchas UNIX estándar usan patrones de globos básicos (*,?, [], Etc.). Estos pueden coincidir con cualquier caso de caracteres, pero no pueden distinguir entre mayúsculas y minúsculas para un filtrado específico.
La solución:usando `find` y` grep`
Puede combinar `Find` y` Grep` para lograr esto. Aquí está como:
`` `Bash
encontrar . -type f -print0 | Grep -Ez '^./[^/]*[A -Z] \.? [^/]*$' | xargs -0 ls -l
`` `` ``
Explicación:
1. `encontrar. -type f -print0`:
- `Find. ':Comienza a buscar en el directorio actual (`.')
- `-Type F`:busca solo archivos regulares
- `-Print0`:Imprime archivos encontrados separados por caracteres nulos (más seguro para nombres de archivo con espacios)
2. `Grep -Ez '^./[^/]*[A -Z] \.? [^/]*$'`:
- `Grep`:filtra la salida de` Find`
- `-e`:habilita expresiones regulares extendidas para obtener más flexibilidad
-`-z`:trata la entrada como cadenas terminadas
- La expresión regular:
- `^./`:Coincide con el comienzo de la línea, seguido de "./" (para que coincida con rutas relativas)
- `[^/]*`:coincide con cualquier caracteres excepto "/" (asegurando que todavía estemos dentro del nombre de archivo)
- `[A-Z]`:coincide con una sola letra minúscula
- `\.
- `$`:coincide con el final de la línea
3. `xargs -0 ls -l`:
-`xargs -0`:toma la lista de archivos terminado nulo de 'Grep` y construye argumentos de comando
- `ls -l`:enumera los archivos (puede cambiar esto a cualquier comando que desee ejecutar en los archivos filtrados)
Notas importantes:
* Archivos ocultos: Esto encontrará archivos ocultos (comenzando con '.') Que cumplen con los criterios.
* Sensibilidad de casos: La expansión del nombre de archivo de su caparazón puede ser sensible a los casos o insensibles.
¡Avísame si quieres refinar la búsqueda más!