UNIX 'ls' commande - générique " OU " opérateur
J'ai un répertoire avec les fichiers horodatés dans le format:
processAlpha20120618.txt
processAlpha20120619.txt
processAlpha20120620.txt
processBeta20120618.txt
processBeta20120619.txt
processBeta20120620.txt
... etc.
Je veux une liste de ces pour des dates précises. Quelque chose comme ceci:
ls -l *201206[19|20|21]*
Évidemment, le ci-dessus ne fonctionne pas, mais vous pouvez voir ce que je cherche à réaliser. Je veux correspondre à quelque chose où la chaîne "201206" est suivi de "19", "20" ou "21".
Je sais que c'est possible à l'aide de grep ou trouver, je me demandais si cela pouvait être fait en utilisant ls.
Comme par Ed Guérir la réponse ci-dessous, c'est une coquille question. Donc, pour votre information, je suis en utilisant le Korn shell.
En KSH, ce qui peut être fait avec
En KSH, ce qui peut être fait avec
ls -l *201206@(19|20|21)*
OriginalL'auteur Nossidge | 2012-06-22
Vous devez vous connecter pour publier un commentaire.
ls
ne pas le faire - le shell étend*
etc et puis les transmet àls
comme arguments.Regarder la documentation pour la coquille, il est appel d'expansion
Une tique, ce serait bien. Faire pour un très humides Edimbourg
"Vous pouvez accepter une réponse en moins de 4 minutes" 🙂
Eh bien, j'ai regardé la documentation de KSH d'expansion et trouvé la réponse. Cela peut être fait avec
ls -l *201206@(19|20|21)*
vous êtes les bienvenus
OriginalL'auteur Ed Heal
Fournissant vous êtes désireux de faire correspondre les dates exactes (dont il semble que vous êtes), la manière de la sorte avec bash expansion:
Cette réponse fonctionne sur mon mac terminal!!
OriginalL'auteur Andrew Stubbs