#1 Le 03/01/2020, à 11:19
- Memphis Garnier
Script bash filtrer par date
Bonjour à tous,
je vous souhaite une bonne année 2020.
Je suis débutant aux scripts shell. Je commence tout juste mais j'aurais besoin d'un script assez rapidement.
Je voudrais que mon script éxécute :
Si dans mon champ "inscription" il y a des inscriptions de plus de 6 mois alors je veux supprimer cette personne.
Ce sont des fiches de personnes avec des pleins de champs mais je veux juste m'occuper du champ 'date d'inscription'
Je connais mon script qui permet de supprimer, j'ai juste besoin de savoir comment filtrer mon champs pour supprimer les inscritpions de plus de 6 mois.
Cordialement
Memphis.
Dernière modification par Memphis Garnier (Le 03/01/2020, à 11:21)
Hors ligne
#2 Le 03/01/2020, à 11:39
- pingouinux
Re : Script bash filtrer par date
Bonjour,
Sans exemple, ça ne va pas être facile de t'aider… Quelle est la nature du fichier ?
Hors ligne
#3 Le 03/01/2020, à 12:02
- Watael
Re : Script bash filtrer par date
salut,
quand il y a des champs, il faut s'orienter vers awk, et plus particulièrement, parce qu'il y a des dates à traiter, Gawk.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#4 Le 04/01/2020, à 16:06
- LeoMajor
Re : Script bash filtrer par date
bonjour,
si cela peut t'inspirer ...
:~$ cat /tmp/test.txt
nom prenom genre inscriptions ville
thiers l f 2019-07-05 bordeaux
dujardin v m 2016-01-20 rennes
flores f f 2019-12-01 nantes
mattis n m 2020-02-26 prochainement
martin p m 2018-12-23 paris
dupont z f 2017-11-01 marseille
flaubert m m 2019-10-23 orléans
pic b m 2019-07-01 amiens
:~$ gawk 'BEGIN{"date -d \"6 months ago\" +%s" | getline ref; print "comparé à ",strftime("%Y-%m-%d",ref)}; NR>1 && $4!="" { print "----",$4; nf=patsplit($4,p,/[0-9]+/); tgt=mktime(p[1]" "p[2]" "p[3]" 00 00 00"); if(ref<tgt){print $1,"inscris après ",strftime("%Y-%m-%d",ref)," : ",strftime("%Y-%m-%d",tgt)}else{print $1,"inscris avant ",strftime("%Y-%m-%d",ref)," : ",strftime("%Y-%m-%d",tgt)}; print ""}' /tmp/test.txt
comparé à 2019-07-04
---- 2019-07-05
thiers inscris après 2019-07-04 : 2019-07-05
---- 2016-01-20
dujardin inscris avant 2019-07-04 : 2016-01-20
---- 2019-12-01
flores inscris après 2019-07-04 : 2019-12-01
---- 2020-02-26
mattis inscris après 2019-07-04 : 2020-02-26
---- 2018-12-23
martin inscris avant 2019-07-04 : 2018-12-23
---- 2017-11-01
dupont inscris avant 2019-07-04 : 2017-11-01
---- 2019-10-23
flaubert inscris après 2019-07-04 : 2019-10-23
---- 2019-07-01
pic inscris avant 2019-07-04 : 2019-07-01
Hors ligne