2017-04-25 2 views
1

Je dois créer un fichier de sortie pour un entrepreneur externe contenant une liste de noms de fichiers depuis un dates de répertoire et de création dans un format spécifique comme celui-ci:Une bonne façon de formater l'horodatage Ainsi, dans bash

FileName  YYYYmmDDHHMMSS 

Jusqu'à présent, je suis venu avec:

find ./ -type f -printf " %f %a\n" 

qui retourne:

FILENAME ven 21 avril 18: 21: 2017 15,0458585800

Ou:

ls -l | awk {'print $9" "$6" "$7" "$8'} 

qui retourne:

FILENAME avr 21 18:21

Mais ni est tout à fait la sortie i besoin car il doit être purement numérique et inclure les secondes. En gardant à l'esprit que la liste des fichiers pourrait être très grande, l'efficacité est une priorité, comment puis-je obtenir cette sortie?

Répondre

2

Quelque chose comme ça

find ./ -type f -printf " %f %AY%Am%Ad%AH%AM%AS\n" |sed -e 's/\.[0-9]*$//' 

(sed est nécessaire pour enlever une partie fractionnelle après secondes)

(Edit) avec ls il sera:

ls -l --time-style=+%Y%m%d%H%M%S |awk {'print $7" "$6'}