je cherche à rechercher dans dir ...regex pour trouver la date dir
a2010-02-10
comment rechercher ls dir tout avec le format de date
ls -d *(\d+)-(\d+)-(\d+)
sa ne fonctionne pas comme perl
ce qui est le format
je cherche à rechercher dans dir ...regex pour trouver la date dir
a2010-02-10
comment rechercher ls dir tout avec le format de date
ls -d *(\d+)-(\d+)-(\d+)
sa ne fonctionne pas comme perl
ce qui est le format
Votre regex semble être correct, mais bash d ne supporte pas les expressions régulières complètes. Il prend en charge wildcards, ce qui ne peut pas toujours fonctionner de la même manière. Essayez ceci:
ls -d | grep -E '(\d+)-(\d+)-(\d+)$'
Et vraiment, les groupes (\d+)
pourraient être remplacés par tout \d+
.
Si vous préférez une solution pure bash, essayez ceci:
ls -d *[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]
Vous pouvez simplifier que, pour être moins exact si on le souhaite:
ls -d *[0-9]*-[0-9]*-[0-9]*
Mais je vais pour utiliser grep
parce que c'est beaucoup plus clair ce que tu veux. Vous pouvez le rendre encore plus clair:
ls -d | grep -E '\d{4}-\d{2}-\d{2}$'
Avec shopt -s extglob
, vous pouvez faire:
ls -d *+([0-9])-+([0-9])-+([0-9])