Mode console, scripts BASH, SH

 Charge moyenne sur 1mn : 0.81 Charge moyenne sur 5mn : 0.69 Charge moyenne sur 15mn : 0.62


Comment utiliser la console, se faire des scripts BASH, SHells ?

Faire des scripts BASH, SHells ! Utiliser les fichiers utilisateurs comme le .bashrc et le .profile.





Blocs utilisateurs du site : Infos du compte / droits utilisateurs / récapitulatif

Identifiez-vous

Authentifiez-vous avec votre compte ZW3B et profitez des services membres.

Identifiant :
Mot de passe :
  
  

Couper, fractionner une date YYYYMMDD

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

Informations

Dates
  • Publication : Samedi 10 août 2019
  • Modification : Dimanche 11 août 2019

Comment-faire pour fractionner : avec un substr dans la commande awk

Par exemple sur la commande date +%Y%m%d%H%M%S :

date +%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 :

ls -l /home/user/repertoire/
/home/user/repertoire/97-20190802112342.jpg
/home/user/repertoire/01-20190810150200.jpg

On pourait faire :

for 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/ :

for i in  /home/user/repertoire/*.jpg; do

        echo $i |cut -d/ -f 5 | 
        awk -F - '{ date_now=substr($(date),7,2); day=substr(,7,2); if (date_now == day) 
        print  "-" "Y"substr(,1,4) "M"substr(,5,2) "D"substr(,7,2) "H"substr(,9,4) "S"substr(,13,2) ""substr(,15,4)}';

done;

Et comme ceci sur une date de type YYYYMMDD heure minutes secondes : date +%Y%m%d%H%M%S ^^ :

date +%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 >>





Autheur de la page

LAB3W.ORJ

LAB3W.ORJ

  • Prénom : Olivier Romain Luc
  • Nom : Jaillet-ramey
  • Arrivé le mardi 19 octobre 1976 (1976/10/19 00:00)
    44 ans d'activité !

Firefox Nighlty

Nos amis de Framasoft s'intéressent à Mozilla et leur ont posé des questions à propos de Nightly : Firefox Night-club, entrée libre !






Valid XHTML 1.0 Strict CSS Valide !

ipv6 ready