Vous ne pouvez pas répertorier directement les fichiers se terminant uniquement en lettres minuscules avec une seule commande et un fichier de base globbing. Voici pourquoi et comment contourner:
pourquoi c'est délicat:
* globbing de base: Les coquilles UNIX standard utilisent des modèles globbing de base (* ,?, [], etc.). Ceux-ci peuvent correspondre à n'importe quel cas de caractère, mais ne peuvent pas distinguer entre majuscules et minuscules pour un filtrage spécifique.
La solution:en utilisant `Find` et` grep`
Vous pouvez combiner «trouver» et «grep» pour y parvenir. Voici comment:
`` `bash
trouver . -Type f -print0 | grep -Ez '^. / [^ /] * [a-z] \.? [^ /] * $' | xargs -0 ls -l
`` '
Explication:
1. `trouver. -Type f -print0`:
- "Find.":commence à rechercher dans le répertoire actuel ("."
- `-ype f`:ne recherche que des fichiers réguliers
- `-print0`:imprime les fichiers trouvés séparés par des caractères nuls (plus sûr pour les noms de fichiers avec des espaces)
2. `grep -ez '^. / [^ /] * [A-z] \.? [^ /] * $'`:
- «grep»:filtre la sortie de «find»
- `-e`:permet des expressions régulières étendues pour plus de flexibilité
- `-z`:traite les contributions comme des chaînes terminées nulles
- l'expression régulière:
- `^. /`:Correspond au début de la ligne, suivi de "./" (pour correspondre aux chemins relatifs)
- `[^ /] *`:correspond à tous les caractères sauf "/" (s'assurer que nous sommes toujours dans le nom de fichier)
- `[A-Z]`:correspond à une seule lettre en minuscules
- `\.? [^ /] *`:Correspond à un point facultatif (`.`) suivi de tous les caractères sauf" / "
- `$ ':correspond à la fin de la ligne
3. `xargs -0 ls -l`:
- `xargs -0`:prend la liste des fichiers terminées nulles à partir de` grep` et construit des arguments de commandement
- `ls -l`:répertorie les fichiers (vous pouvez modifier ceci en n'importe quelle commande que vous souhaitez exécuter sur les fichiers filtrés)
Remarques importantes:
* Fichiers cachés: Cela trouvera des fichiers cachés (à commencer par '.') Qui répondent aux critères.
* Sensibilité à la casse: L'expansion du nom de fichier de votre coquille peut être sensible à la casse ou insensible.
Faites-moi savoir si vous voulez affiner la recherche plus loin!
|