Vous voulez le jeton d'expression régulière "alternation" |
pour dire "soit ceci, soit cela":
grep -E '2019-(09|10)-' file
Voir Pourquoi mon expression régulière fonctionne-t-elle dans X mais pas dans Y ? pour des informations sur les jetons d'expressions régulières et les classes de regex (de base, étendues, etc.).
grep
n'est pas doué pour manipuler les nombres, il ne sait pas comment les comparer arithmétiquement. Pour cela, vous pouvez utiliser quelque chose comme awk ou Perl. Ce n'est pas très important ici, car il est facile d'énumérer 09
et 10
, mais si vous aviez quelque chose comme une plage de 97 à 123, ce serait bien pire.
Par exemple. cela choisirait l'année, le mois et le jour comme nombres, et imprimerait les lignes où le jour est compris entre 27 et 31 :
perl -ne 'print if /Last Password Change: ([0-9]+)-([0-9]+)-([0-9]+)/ && $3 >= 27 && $3 <= 31' < file
Le regex est principalement comme un grep ERE, les parenthèses capturent les parties correspondantes dans les variables $1
, $2
, $3
etc.