Verifique se o nome do arquivo tem data / hora [closed]

1

Eu preciso de um script de shell que verifique se o meu nome de arquivo tem registro de data e hora. Se sim, deve prosseguir para a próxima etapa, caso contrário, acrescentar o registro de data e hora ao nome do arquivo.

    
por awareness_seeker 01.02.2018 / 18:39

2 respostas

0

#!/bin/bash

a="afile.txt"
sometimestamp="$(date +%Y-%m-%d)"
if [[ $a =~ *"${sometimestamp}"* ]]; then 
   echo "Do something"; 
else 
   mv "$a" "${a}.${sometimestamp}"; 
fi

sometimestamp="$(date ....)" no script pode ser alterado para o timestamp em que você está interessado.

    
por 01.02.2018 / 18:55
0

A estrutura de um 2018-02-01 é dada por este regex:

[0-9]{4}-[0-9]{2}-[0-9]{2}

Usar isso em uma correspondência de expressão regular dirá se o nome do arquivo corresponde:

#!/bin/bash
f=filetotest.txt
regex='[0-9]{4}-[0-9]{2}-[0-9]{2}'

if [[ $f =~ $regex ]]; then
    echo "File $f has a timestamp"
else
    mv -i "$f" "$f$(date +%Y-%m-%d)"
fi

Se o carimbo de data / hora deve estar no final do nome do arquivo, use este regex:

[0-9]{4}-[0-9]{2}-[0-9]{2}$

(Observe o $ para a correspondência de fim de linha)

    
por 01.02.2018 / 20:07