検討中の日付ISO 8601ie ‘YYYY-MM-DD’
、eg形式を取り、2015-01-28
次の形式のファイルを含むフォルダがあるとします。
AAAA_<date>_BBBB
グローバルパターンを探しています。扱いにくい(またはBash)の間にファイルを指定するために使用できます。二つ日付。
2014-12-15
たとえば、との間にファイルをコピーしたいとします2015-02-03
。これら2つの日付(含む)の間のファイルを参照するグローバル式を作成する簡単な方法はありますか?
これが役に立つかもしれません(出典:事前編成順序):
辞書式順序の重要な使用は、日付をYYYY-MM-DDで表すISO 8601日付形式スキームで表されます。この日付ソートは日付の単純なコンピューターのソートを容易にするため、ソートアルゴリズムは日付文字列の数値部分を数値ではなく文字列とは異なる方法で処理する必要はなく、日付は年代順にソートされます。
答え1
質問zsh
に表示することをお勧めしますグローバル予選ファイル名のテストを含みます。
$ ls -1 AAAA*
AAAA_2012-10-03_BBBB
AAAA_2014-12-28_BBBB
AAAA_2015-01-03_BBBB
AAAA_2015-02-03_BBBB
AAAA_2015-10-03_BBBB
$ d1='2014-12-15'
$ d2='2015-02-03'
$ print -l *(e:'[[ "${${REPLY#*_}%_*}" > "$d1" && "${${REPLY#*_}%_*}" < "$d2" ]]':)
AAAA_2014-12-28_BBBB
AAAA_2015-01-03_BBBB
特定の日付形式に対して単純な文字列比較を実行できます。
AAAA_date_BBBB
ここでは、あなたのファイル名が質問のように指定され、「日付」部分がパラメータ拡張によって抽出されると仮定します。実際のケースシナリオに適した方法で「日付」を取得するには、このコードを変更する必要があります。