Bonjour,
J'ai une liste de fichier compressé (tar.gz) qui sont horodaté.
Exemple :
AOC_303_2017_03_17.tar.gz
IICAPACITE_Capacity_2017_03_20.tar.gz
Comme vous pouvez le voire, la date est au format : aaaa_mm_jj
soit en expression regex : ([0-9]{4}_[0-9]{2}_[0-9]{2})
Quand on utilise l'outil en ligne : https://regex101.com/
avec l'expression : ([0-9]{4}_[0-9]{2}_[0-9]{2}).tar.gz
on voit apparait le groupe 1 : `2017_03_20`
Donc en shell, je me dis que :
Explication par rapport au motif utilisé dans l'outil en ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 TEST=AOC_532_2017_03_20.tar.gz echo $TEST | sed -e "s/\([0-9]{4}_[0-9]{2}_[0-9]{2}\).tar.gz/\1/"
- j'échape mes 2 parenthèses qui délimite mon sous groupe
- \1 ==> j'affiche ou plutot je remplace ma chaine de caractère par une uniquement la valeur de mon sous groupe.
Malheureusement la commande suivante :
Me renvoie le nom complet de ma chaine
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo $TEST | sed -e "s/\([0-9]{4}_[0-9]{2}_[0-9]{2}\).tar.gz/\1/"
et non uniquement mon sous groupe (la date du fichier) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part FTM_532_2017_03_20.tar.gz
Code : Sélectionner tout - Visualiser dans une fenêtre à part 2017_03_20
Partager