Informations :
Dates
- Publish : : Saturdy 10 august 2019
- Modification : Sunday 11 august 2019
- 958 views
Share :
Comment-faire pour fractionner : avec un substr dans la commande awk
Par exemple sur la commande date +%Y%m%d%H%M%S :
Script avec 1 ligne
001date +%Y%m%d%H%M%S | awk -F - '{print "Y"substr(,1,4) "M"substr(,5,2) "D"substr(,7,2) "H"substr(,9,6) "" substr(,15,4)}';
Par exemple sur un répertoire avec des fichiers ayant étaient nommés par date :
Script avec 3 lignes
001ls -l /home/user/repertoire/002/home/user/repertoire/97-20190802112342.jpg003/home/user/repertoire/01-20190810150200.jpg
On pourait faire :
Script avec 1 ligne
001for i in /home/user/repertoire/*; do echo $i |cut -d/ -f 5 | awk -F - '{print "-" "Y"substr(,1,4) "M"substr(,5,2) "D"substr(,7,2) "H"substr(,9,6) "" substr(,15,4)}'; done;
Comment-faire pour récupérer seulement les fichiers de la journée !
Il faut simplement ajouter des variables comme la date du jour dans la commande awk, récupérer la date du jour des fichiers et vérifier si elles sont égales ou différentes avec un if.
Comme ceci pour les fichiers de type 01-20190810150200.jpg du répertoire /home/user/repertoire/ :
Script avec 7 lignes
001for i in /home/user/repertoire/*.jpg; do002 003echo $i |cut -d/ -f 5 |004awk -F - '{ date_now=substr($(date),7,2); day=substr(,7,2); if (date_now == day)005print "-" "Y"substr(,1,4) "M"substr(,5,2) "D"substr(,7,2) "H"substr(,9,4) "S"substr(,13,2) ""substr(,15,4)}';006 007done;
Et comme ceci sur une date de type YYYYMMDD heure minutes secondes : date +%Y%m%d%H%M%S ^^ :
Script avec 1 ligne
001date +%Y%m%d%H%M%S | awk -F - '{ date_now=substr($(date),7,2); day=substr({content_text},7,2); if (date_now == day) print "Y"substr({content_text},1,4) "M"substr({content_text},5,2) "D"substr({content_text},7,2) "H"substr({content_text},9,4) ""substr({content_text},13,2) ""substr({content_text},15,4) }';
Cordialement, Romain ;)

