Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 12/04/2017, à 16: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 ? smile

Dernière modification par elladan35 (Le 13/04/2017, à 09:33)

Hors ligne

#2 Le 12/04/2017, à 16: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, à 16:36)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#3 Le 12/04/2017, à 16: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, à 17:04)

Hors ligne

#4 Le 12/04/2017, à 17: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, à 17: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, à 17:31)

Hors ligne

#6 Le 12/04/2017, à 18:46

Hizoka

Re : [Résolu] Chaine de caractère dans une variable

à moi, à moi tongue

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, à 19:38)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#7 Le 12/04/2017, à 18:50

MicP

Re : [Résolu] Chaine de caractère dans une variable

@Hizoka

dans son premier message, elladan35 a écrit :

…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, à 08:41)

Hors ligne

#8 Le 12/04/2017, à 18:51

Watael

Re : [Résolu] Chaine de caractère dans une variable

Hizoka a écrit :

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, à 18:51)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#9 Le 12/04/2017, à 18:52

Hizoka

Re : [Résolu] Chaine de caractère dans une variable

ha vi, j'ai lu trop vite smile


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#10 Le 12/04/2017, à 18: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 smile

=======
@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, à 19:15)

Hors ligne

#11 Le 12/04/2017, à 19: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, à 09: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é. smile

Sujet résolu.

Hors ligne

#13 Le 13/04/2017, à 17: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... big_smile


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne