現在は2019年8月14日で、日付リスト(dd.mm.yyyy)を含むテキストファイルがあります。
30.07.2018
14.08.2019
18.08.2019
20.08.2019
01.01.2020
リストの日付は期限です。
出力は次のようになります。現在の日付より前の日付と10日後に有効期限が切れる日付のリスト(1〜10日以内に有効期限が切れた場合にリストされ、今日の有効期限が切れた場合にもリストされます。)11日以上の後の有効期限がリストにない場合。
ベストアンサー1
GNUの使用date
:
#! /bin/sh -
printf '%s days\n' -1 +10 |
date -f - +%d.%m.%YT |
sort -nt. -k3 -k2 -k1 -- - "$@" |
sed '/T/,/T/!d;/T/d'
アイデアは、昨日と10日後の日付を挿入し、で終わるリストを並べ替えることです。T
たとえば、2019-08-14で実行している場合は、次のような結果が得られます。
30.07.2018
13.08.2019T
14.08.2019
18.08.2019
20.08.2019
24.08.2019T
01.01.2020
私たちはこれらの2行の間の部分を抽出しますT
。
$ faketime 2019-08-14 that-script your-file
14.08.2019
18.08.2019
20.08.2019