msoliver
(usa Debian)
Enviado em 10/06/2024 - 19:26h
pedro0000 escreveu:
Então o script está desta forma
month= date | cut 8-10
day= date | cut 5-6
log=$(date +"%d-%m-%Y")
Esse é como o script está pegando a data
Ai tem uma linha no script desta forma
more /HD/logs/dirs.txt | grep "$month" "$day" > /HD/logs/dirs2-"$log".txt
Só que só está funcionando a partir do dia 10,
porque do dia 1 ao 9 o arquivo dirs.txt o dia fica desta forma " 9" com um espaço ai o script não consegue criar o dirs 2.
Alternativas:
1 - Alterar o arq dirs.txt e deixar os dias com dois dígitos.
2 - "Pegar" os dias menores que dez, com um dígito,
dia="$(date +%_d)"
#------------------------------------------------------------------------#
Descomplique....
No lugar de:
month= date | cut 8-10 #obs.: comando incorreto!
day= date | cut 5-6 #obs.: comando incorreto!
Faça:
mes_dia="$(date +%b" "%_d)"
#------------------------------------------------------------------------#
E ainda.....
O grep busca direto no arquivo:
grep "$month" "$day" /HD/logs/dirs.txt > /HD/logs/dirs2-"$log".txt
não é necessário,
more arquivo | grep .....
+ dica...
A data com o printf é um pouco mais rápido do que o comando date.....
log=$(printf "/HD/logs/dirs2-%(%d-%m-%Y)T.txt");
#-------------------------------------------------------------------------------------------#
Obs.: Minha opção, seria alterar o arquivo dirs.txt, deixando o dia com dois dígitos....
É isso....
Att.: Marcelo Oliver