Anda menginginkan token ekspresi reguler "pergantian" |
untuk mengatakan "ini atau itu":
grep -E '2019-(09|10)-' file
Lihat Mengapa ekspresi reguler saya berfungsi di X tetapi tidak di Y? untuk beberapa latar belakang tentang token ekspresi reguler dan kelas regex (basic, extended, dll).
grep
tidak pandai menangani angka, ia tidak tahu bagaimana membandingkannya secara aritmatika. Untuk itu, Anda mungkin ingin menggunakan sesuatu seperti awk atau Perl. Itu tidak terlalu penting di sini, karena mudah untuk mencantumkan 09
saja dan 10
, tetapi jika Anda memiliki rentang dari 97 hingga 123, itu akan jauh lebih buruk.
Misalnya. ini akan memilih tahun, bulan, dan hari sebagai angka, dan mencetak baris dengan tanggal antara 27 dan 31:
perl -ne 'print if /Last Password Change: ([0-9]+)-([0-9]+)-([0-9]+)/ && $3 >= 27 && $3 <= 31' < file
Regex sebagian besar seperti grep ERE, tanda kurung menangkap bagian yang sesuai ke dalam variabel $1
, $2
, $3
dll.