Formatação de dia e data

1. Formatação de dia e data

Pedro Henrique de Cristo Silva
pedro0000

(usa Outra)

Enviado em 09/06/2024 - 16:02h

Boa tarde! Estou com uma dúvida que venho buscando a resposta a duas semanas referente ao shell, como faço para concatenar a data dependendo se o dia for menor que 10 ele vir com um espaço antes no número como por exemplo " 9" desta forma. Estou aqui se quiserem que esclareça mais essa questão


  


2. Re: Formatação de dia e data

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 09/06/2024 - 16:36h

pedro0000 escreveu:

Boa tarde! Estou com uma dúvida que venho buscando a resposta a duas semanas referente ao shell, como faço para concatenar a data dependendo se o dia for menor que 10 ele vir com um espaço antes no número como por exemplo " 9" desta forma.
Estou aqui se quiserem que esclareça mais essa questão

Boa tarde Pedro.
Vamos ver se eu entendi.....
Se o dia é menor que 10, colocar um espaço antes, é isso?
printf '%(%x)T\n'
09/06/2024
printf '%(%x)T\n'|sed 's/^0/ /'
9/06/2024
date +%_d
9


Att.: Marcelo Oliver


3. Re: Formatação de dia e data

Pedro Henrique de Cristo Silva
pedro0000

(usa Outra)

Enviado em 09/06/2024 - 16:55h


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.





4. Re: Formatação de dia e data

Marcelo Oliver
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



5. Re: Formatação de dia e data

Walker Luiz de Freitas
WalkerPR

(usa Deepin)

Enviado em 11/06/2024 - 09:11h


Pelo que entendi, seu Script cria diretórios. Então eu sugiro que você utilize o dia com 2 dígitos, por exemplo 09 em vez de utilizar espaço, utilize o zero na formatação do dia. Assim facilitaria para listar, pois ficando apenas 9 em uma listagem, ele não viria antes do 10 e sim jogaria no final de uma listagem.

-------------------------------------------------------------------------
"Linux: several flavors, one way: - Freedom of choice!"






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts