Eu tenho um arquivo de texto que contém várias ocorrências de datas. Todas as datas são escritas no formato Mon-DD-YYYY
. Tenho que atualizar todas essas datas na data atual mantendo o formato Mon-DD-YYYY
.
A linguagem de script é bash
. Um grande problema é que não tenho ideia de como combinar uma data de formato específico com sed
, awk
, bash
funções internas, etc.
Você poderia me ajudar por favor?
Obrigado
Defina
current_date=$(date +"%m-%d-%Y")
ou para qualquer data desejada e executeCom isso, você pode corresponder a qualquer data em um arquivo e substituí-la por current_date
O
sed
comando neste caso funciona assim:sed "s/tobereplace/replacement/g"
. Og
no final significa global, o que significa que todas as ocorrências do padrão tobereplace serão substituídas por substituição.Para ser substituído, é usado o padrão regex
[0-9]\{2\}-[0-9]\{2\}-[0-9]\{4\}
, que se traduz em[0-9]
qualquer número de 0 a 9\{2\}
duas vezes\{4\}
Edit: Como FelixJN mencionou no comentário, você provavelmente queria o mês como uma string, para isso você usaria %b no comando de data e substituiria a primeira parte do regex assim:
Nesse caso, o regex funciona assim:
[A-Z]
Corresponde a qualquer letra maiúscula de A a Z.[a-z]\{2\}
Corresponde a qualquer letra minúscula de a a z duas vezesO resto é o mesmo que mencionei acima