Console mode, BASH scripts, SH

 Charge moyenne sur 1mn : 0.18 Charge moyenne sur 5mn : 0.51 Charge moyenne sur 15mn : 0.68


How to use the console, to make scripts BASH, SHells ?

Make scripts BASH, SHells ! Use user files like .bashrc and .profile.





Site user blocks : Account info / user rights / summary

Identify yourself

Authenticate with your ZW3B account and take advantage of member services.

Username :
Password :
  
  

Couper, fractionner une date YYYYMMDD

Couper, fractionner une date YYYYMMDD ou un fichier ayant une date par exemple 97-20190802112342.jpg

Informations :

Dates
  • Publish : : Saturdy 10 august 2019
  • Modification : Sunday 11 august 2019

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.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;


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; 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 ;)



<< Renommer plusieurs fichiers : commands rename for cut sed awk paste

Move files date YYYYMMDD --> directory YYYY/MM/DD >>





Translate this page with Google

Author of the page

O.Romain.Jaillet-ramey

O.Romain.Jaillet-ramey

  • Firstname : Olivier Romain Luc
  • Lastname : : Jaillet-ramey
  • Arrived on tuesday 19 october 1976 (1976/10/19 00:00)
    44 years activity !

Firefox Nighlty

Our friends from Framasoft are interested in Mozilla and asked them questions about Nightly: Firefox Night-club, free entry !






Valid XHTML 1.0 Strict CSS Valide !

ipv6 ready