Copie os arquivos de acordo com o nome do arquivo que contém uma data futura em um formato específico

0

Eu tenho esses arquivos, por exemplo:

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

Eu preciso copiar os arquivos que têm em seus nomes o formato de data que é maior do que a data atual, para este caso, é "181109180000" (11 de novembro de 2018 18: 00h GMT-5).

    
por Angello M. Del Carpio Bravo 13.11.2018 / 16:13

1 resposta

1

Com o bash, você pode fazer isso:

# 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
    
por 13.11.2018 / 16:58