根据包含特定格式的未来日期的文件名复制文件

根据包含特定格式的未来日期的文件名复制文件

我有这些文件,例如:

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:00h 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

相关内容