Nom de fichier correspondant dans ls (bash)
J'ai les fichiers suivants
tcpdump-12
tcpdump-12.delay
tcpdump-24
tcpdump-24.delay
Est-il un moyen de ls
uniquement les fichiers
tcpdump-12
tcpdump-24
Je peux faire
ls tcpdump-[[:digit:]][[:digit:]]
mais je suis à la recherche de quelque chose de plus générique qui peut prendre un nombre quelconque de chiffres, quelque chose comme tcpdump-[0-9]+ si j'étais à l'aide de vim ou python expressions régulières.
source d'informationauteur Sumit
Vous devez vous connecter pour publier un commentaire.
Si vous êtes sûr que tous les fichiers indésirables fin".retard", vous pouvez le faire:
Je ne suis pas sûr de savoir pourquoi vous utilisez
[[:digit:]]
plutôt que[0-9]
; êtes-vous concerté les noms de fichier peut contenir d'autres types de chiffres?La plupart des autres réponses sont bonnes, mais un quick-and-dirty solution est:
Il travaille pour l'ensemble particulier de fichiers que vous avez, mais il serait également correspondre à des noms de fichiers comme
tcpdump-FOO7
.Dans un script, il vaut la peine de faire correspondre exactement le modèle que vous souhaitez. Dans un court shell interactif de commande, bâclée raccourcis qui vient de se produire à travailler pour la situation actuelle peut être utile.
Vous pourriez tuyau de la sortie de ls dans grep. Grep a une "inversion" de l'option (pour afficher les lignes qui ne correspondent pas), de sorte que vous pourriez faire ceci:
Si vous n'avez pas l'esprit de leur passage à travers un filtre externe, vous pouvez utiliser:
Il suffit de garder à l'esprit ce qui finit de vous en donner un par ligne plutôt que d'un joli multi-colonnes
ls
de sortie.Si vous êtes traitement cette liste, il l'habitude de trop mais, si vous voulez juste pour voir ces fichiers dans une liste de répertoires, il n'est pas assez bon. Je suis en supposant que la première, car, autrement, cette question n'appartient pas vraiment sur de la SORTE 🙂