Name : BETA-TESTERS
Project name : ZW3B-API-BETA-TESTERS
Authorized. - 200 - Client API Name and Origin Wildcard OK
Couper, fractionner une date YYYYMMDD ou un fichier ayant une date par exemple 97-20190802112342.jpg
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.jpg 003/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;
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; do 002 003 echo $i |cut -d/ -f 5 | 004 awk -F - '{ date_now=substr($(date),7,2); day=substr(,7,2); if (date_now == day) 005 print "-" "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 ;)