特定の形式の将来の日付を含むファイル名に基づいてファイルをコピーします。

特定の形式の将来の日付を含むファイル名に基づいてファイルをコピーします。

次のファイルがあります。

20029181109173105_MAN_TDR.PLU
20029181109185001_MAN_TDR.PLU
20029181109185301_MAN_TDR.PLU
20029181109185601_MAN_TDR.PLU
20029181109185901_MAN_TDR.PLU

名前が現在の日付より大きい日付形式のファイルをコピーする必要があります(この場合は「181109180000」(2018年11月11日18:00 h GMT-5))。

答え1

Bashを使用すると、次のことができます。

# the set-up
touch 20029181109173105_MAN_TDR.PLU 20029181109185001_MAN_TDR.PLU 20029181109185301_MAN_TDR.PLU 20029181109185601_MAN_TDR.PLU 20029181109185901_MAN_TDR.PLU

current=181109180000    # this would be `current=$(date "+%y%m%d%H%M%S")`

# the pay-off
for f in *PLU; do 
    if [[ $f =~ ^.....([0-9]{12}) ]] && [[ ${BASH_REMATCH[1]} -gt "$current" ]]; then 
        echo "$f"
    fi
done
20029181109185001_MAN_TDR.PLU
20029181109185301_MAN_TDR.PLU
20029181109185601_MAN_TDR.PLU
20029181109185901_MAN_TDR.PLU

関連情報