Estou escrevendo um script em KSH e preciso de sua ajuda para encontrar a lógica para remover minutos e segundos da data. Se os usuários passarem 2024-12-22-16-43-40 para uma variável, ela deverá ser convertida para 2024-12-22-16-00-00.
Estou escrevendo um script em KSH e preciso de sua ajuda para encontrar a lógica para remover minutos e segundos da data. Se os usuários passarem 2024-12-22-16-43-40 para uma variável, ela deverá ser convertida para 2024-12-22-16-00-00.
Em qualquer shell POSIX, incluindo ksh (a especificação POSIX sh é na verdade baseada em ksh (um subconjunto dela), e o
${var%pattern}
operador que se expande para o valor$var
despojado da string mais curta correspondentepattern
ao seu final foi introduzido por ksh no início dos anos 80) :Aqui, o que você deseja fazer é mais manipulação de strings do que manipulação de datas, mas observe que o
printf
interno doksh93
pode fazer o último. Esse formato 2024-12-22-16-43-40, entretanto, não está entre os formatos de carimbo de data/hora suportados por padrão.No entanto, você pode especificar formatos de carimbo de data/hora adicionais usando a
DATEMSK
variável de ambiente padrão.Algo como: (trate-o como uma sequência de texto)
Ou, tratando-o como uma "data/hora", leia
man date
,date
analise sua data e produza-a via `date +"%Y-%m-%d-00-00"