Em um stat
formato (pelo menos o que eu recebo do bash no Linux), pode-se usar modificadores de formato: por exemplo %010s
, forçará um campo de tamanho a ter pelo menos 10 caracteres, preenchido à esquerda com zeros (aliás, isso está documentado em algum lugar?)
Existe um truque equivalente para restringir o comprimento de um campo? Eu quero descartar a parte decimal do segundo nos formatos %xyz. Ou terei que pós-processar a saída com sed/awk?
Usando ferramentas GNU,
Isso obteria o carimbo de data/hora da última modificação do arquivo fornecido (sem resolução de subsegundos) e usaria
date
para reformatá-lo no mesmo formatostat -c %y file
que produziria.Exemplo:
Pode-se usar
printf
a formatação -like para a%y
especificação do formato diretamente, mas não para modificar uma parte da string no meio:Isso trunca a string após 19 caracteres, o que remove os dados de subsegundos, mas as informações de fuso horário também são deixadas de fora.
OK, já que eu posso especificar um comprimento/pad tipo printf (
%010s
, por exemplo), vamos voltar para a documentação raw do printf, que documenta uma precisão que na verdade é o comprimento máximo do campo. E tadaaa.... funciona emstat
formatos! (aqui truncado para manter apenas a parte da data):aqui está uma maneira prática de extrair partes do carimbo de data e hora da estatística e gerar uma saída de data personalizada