0

ファイル名ABC.20131212.XX.xmlXXHH (時間) であるとします。の値を取得し、XXそれをシステム時間の現在の時間と比較する必要があります。等しい場合は、そのファイルの名前を変更します。したがって、午後 12 時 (12:00) の場合は、ファイルを取得しABC.20131212.12.xmlて名前を変更する必要があります。シェルスクリプトで比較するにはどうすればよいですか?

4

3 に答える 3

0

使用できるスクリプトは次のとおりです (パスを適宜変更してください): `

!/ビン/バッシュ

パス=/あなたの/パス/ここ/*

$Path の l の場合

行う

a=$l

b=${a%.xml}

xx=${b: -2}

時間=date +"%I"

[[ $time -eq $xx ]] の場合

それから

mv $l /New/file/name/path/newfile.txt

フィ

終わり

出口 0`

于 2013-10-15T18:32:46.933 に答える
0

Bash 組み込みの正規表現マッチングを使用してそれを行う方法は次のとおりです。

file=foobar.11.xml
if [[ $file =~ .*([0-9][0-9])\.xml ]]; then
    if [[ "${BASH_REMATCH[1]}" -eq $(date "+%I") ]]; then
        # $file has current hour in its name
    fi
fi

24 時間制と比較するには、+%Hwith オプションを使用します。date

于 2013-10-15T09:58:32.370 に答える