2021年1月3日 - 2020年1月3日の範囲の行のみを出力する正規表現を作成します。

2021年1月3日 - 2020年1月3日の範囲の行のみを出力する正規表現を作成します。

2020年1月1日から2021年4月4日までの日付を含むファイルがあります。 egrepを使用して、2020年1月3日から2021年1月3日までの日付のみをインポートしたいと思います。 ~しようとする

egrep "([0][1-9]|[1-2][0-9]|[3][0]/[0][3-9]|[1][0-2]/[2][0][2][0-1])$" dates.txt

しかし、まだファイルのすべての日付が表示されます。

$ cat dates.txt 
01/01/2020
24/01/2020
04/02/2020
23/02/2020
01/03/2020
13/03/2020
14/04/2020
29/05/2020
16/06/2020
17/07/2020
18/08/2020
19/09/2020
20/10/2020
21/11/2020
22/12/2020
23/01/2021
24/02/2021
01/03/2021
25/03/2021
04/04/2021

ベストアンサー1

日付が順番にあり、開始日と終了日の両方のファイルにある提供されたサンプルファイルを使用すると、よりawk簡単な解決策を見つけることができます。

$ awk '$1=="01/03/2020",$1=="01/03/2021"' dates.txt
01/03/2020
13/03/2020
14/04/2020
29/05/2020
16/06/2020
17/07/2020
18/08/2020
19/09/2020
20/10/2020
21/11/2020
22/12/2020
23/01/2021
24/02/2021
01/03/2021
$

参考としてご利用の際はegrep参考にしてください廃止、POSIX互換grep -E方式をサポートしています。

おすすめ記事