ディレクトリ構造 /year/month/date.db でファイルの範囲を選択します。

ディレクトリ構造 /year/month/date.db でファイルの範囲を選択します。

私のデータベースはディレクトリ構造に格納されています。

年/月/日.db

例は次のとおりです。

ディビ/2013/10/15.db

スクリプトを使用してその中のファイルの範囲を選択できる必要があります(「dbSelect 2013/09/01.db 2013/10/15.db」は、この日付間のすべての.dbファイルを出力する必要があります。

この問題をどのように解決できるかについてのアイデアはありますか?

答え1

これが私がすることです。より良い/よりエレガントなソリューションがあるかもしれません。スクリプトは「db」ディレクトリで実行する必要があります。

#!/bin/bash

STARTDATE="2013/09/01"
ENDDATE="2013/10/15"

day=0

while [ "$DATE" != "$ENDDATE" ]; do
        DATE=`date --date="$STARTDATE + $day days" +%Y/%m/%d`
        if [ -f "$DATE.db" ]; then
                # This only echoes the file name, you might want to do something else here
                echo "$DATE.db"
        fi
        day=$(($day+1))
done

編集:「./dbSelect.sh 2013/09/01 2013/10/15」パラメータを許可する場合:

#!/bin/bash

STARTDATE="$1"
ENDDATE="$2"

day=0

while [ "$DATE" != "$ENDDATE" ]; do
        DATE=`date --date="$STARTDATE + $day days" +%Y/%m/%d`
        if [ -f "$DATE.db" ]; then
                # This only echoes the file name, you might want to do something else here
                echo "$DATE.db"
        fi
        day=$(($day+1))
done

関連情報