#1 Le 12/04/2017, à 15:23
- elladan35
[Résolu] Chaine de caractère dans une variable
Bonjour,
Je suis actuellement dans l'élaboration d'un script et je suis confronté à un petit souci.
En effet, j'ai une liste de fichiers ayant chacun un nom pouvant être sous les formes suivantes :
_home_test_file1
_home_test_14:48
_home_test_file2
_home_test_14:47
_home_test_file3
_home_test_14:39
_home_test_14:20_update
_home_test_09:27_update
J'aimerais isoler les fichiers ayant dans leur nom la chaine de caractère "hh:mm" et ainsi donc récupérer les fichiers suivants :
_home_test_14:48
_home_test_14:47
_home_test_14:39
_home_test_14:20_update
_home_test_09:27_update
Quelqu'un aurait une idée ?
Dernière modification par elladan35 (Le 13/04/2017, à 08:33)
Hors ligne
#2 Le 12/04/2017, à 15:35
- Watael
Re : [Résolu] Chaine de caractère dans une variable
salut,
quel rapport entre le sujet et la requête ?
c'est un travail sur les regex (donc man 7 regex), à réaliser avec sed pour une plus grande efficacité.
et non, tu ne vas pas chercher la chaîne de caractère "hh:mm", mais la séquence
deux nombres
un deux-points
deux nombres
Dernière modification par Watael (Le 12/04/2017, à 15:36)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 12/04/2017, à 15:43
- MicP
Re : [Résolu] Chaine de caractère dans une variable
Bonjour
En pur bash depuis le répertoire contenant les fichiers :
maRegex='[0-1][0-9]|2[0-3]:[0-5][0-9]'; for f in *; do [[ "$f" =~ $maRegex ]] && echo "$f"; done
Dernière modification par MicP (Le 12/04/2017, à 16:04)
Hors ligne
#4 Le 12/04/2017, à 16:04
- pingouinux
Re : [Résolu] Chaine de caractère dans une variable
Bonjour,
Ou bien
sed -nr '/[0-9]{2}:[0-9]{2}/p' liste_fichiers
Hors ligne
#5 Le 12/04/2017, à 16:31
- MicP
Re : [Résolu] Chaine de caractère dans une variable
Toujours avec seulement bash et si les noms de fichiers sont dans un fichier nommé liste_fichiers
maRegex='[0-1][0-9]|2[0-3]:[0-5][0-9]'; while read; do [[ "$REPLY" =~ $maRegex ]] && echo "$REPLY"; done < liste_fichiers
Dernière modification par MicP (Le 12/04/2017, à 16:31)
Hors ligne
#6 Le 12/04/2017, à 17:46
- Hizoka
Re : [Résolu] Chaine de caractère dans une variable
à moi, à moi
while read
do
[[ -z "${REPLY/*_[0-9][0-9]:[0-9][0-9]*}" ]] && echo "${REPLY}"
done < fichier_liste
MicP, pas con le contrôle mais... c'est peut être que le hasard si ses exemples correspondent à des heures XD
Dernière modification par Hizoka (Le 12/04/2017, à 18:38)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#7 Le 12/04/2017, à 17:50
- MicP
Re : [Résolu] Chaine de caractère dans une variable
@Hizoka
…J'aimerais isoler les fichiers ayant dans leur nom la chaine de caractère "hh:mm"…
Je me suis basé sur ce qu'il avait écrit
C'est vrais que ta proposition d'utilisation de la regex est plus intéressante,
car la mienne ne serait utile que si l'on devait utiliser des BASH_REMATCH mais ce n'est pas ce que demandait elladan35.
Dernière modification par MicP (Le 15/04/2017, à 07:41)
Hors ligne
#8 Le 12/04/2017, à 17:51
- Watael
Re : [Résolu] Chaine de caractère dans une variable
c'est peut être que le hasard si ses exemples correspondent à des heures
je ne crois pas.
il le dit maladroitement :
les fichiers ayant dans leur nom la chaine de caractère "hh:mm"
je comprends
les fichiers ayant dans leur nom une chaine de caractère respectant le format "HH:MM"
Dernière modification par Watael (Le 12/04/2017, à 17:51)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#9 Le 12/04/2017, à 17:52
- Hizoka
Re : [Résolu] Chaine de caractère dans une variable
ha vi, j'ai lu trop vite
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#10 Le 12/04/2017, à 17:56
- MicP
Re : [Résolu] Chaine de caractère dans une variable
En tout cas, je me régale de lire vos messages, et c'est bien grâce à vous que j'en ais appris, en apprends encore beaucoup chaque jour,
et en apprendrais sans doute pendant longtemps.
Merci
=======
@Hizoka Pour aller bien, il faudrait supprimer le "Tiret bas" _ situé juste après les minutes
"${REPLY/*_[0-9][0-9]:[0-9][0-9]*}"
Dernière modification par MicP (Le 12/04/2017, à 18:15)
Hors ligne
#11 Le 12/04/2017, à 18:38
- Hizoka
Re : [Résolu] Chaine de caractère dans une variable
ha ouais je suis allé trop vite...
je modifie.
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#12 Le 13/04/2017, à 08:33
- elladan35
Re : [Résolu] Chaine de caractère dans une variable
Bonjour,
Merci beaucoup pour vos propositions. J'ai utilisé celle proposé par pingouinux car elle s'intègre parfaitement avec le travail que j'ai actuellement effectué.
Sujet résolu.
Hors ligne
#13 Le 13/04/2017, à 16:58
- Hizoka
Re : [Résolu] Chaine de caractère dans une variable
pffff pingouinux... c'est qui ce mec ?! personne le connait ici, il doit pas y connaitre grand chose...
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne