Je partage mon premier journal sur LinuxFr pour partager mes conclusions personnelles sur un débat ancien de plusieurs décennies : faut-il dire "expression rationnelle" ou "expression régulière" ? C'était encore un débat relativement fréquent dans ces colonnes il y a une quinzaine d'années. Il me semblait qu'il s'était éteint avec une victoire de fait du terme "expression régulière", mais je viens d'en voir passer un écho tout récemment : s'agit-il bien d'une victoire légitime ? Tentons une rétrospective.
Lien Un moteur de jeu d'échecs écrit en expressions régulières
Forum Programmation.autre Renommage de fichier - regex
Bonjour,
J'aurais besoin de renommer en masse des fichiers.
le nom de fichier est de la forme
text1.00B00.text2.ext
text1 est une chaine de caractère de longueur variable
. un point
00 un chiffre sur 1 ou 2 digit
B la lettre B fixe
00 un chiffre sur 1 ou 2 digit
. un point
text2 est une autre chaine de caractère de longueur variable
.ext l'extension du fichier
le besoin est de remplacer les 2 zones de chiffres par le (…)
Forum Programmation.shell Problème sed
Bonjour,
Je souhaite modifier le fichier ci-dessous et ajouter dans la ligne condition avant le /1 /6 et /4 le trigramme TST afin d'avoir un résultat de cette manière tout en gardant le contenu du fichier :
VariableXXXXTST/1
Auriez-vous une idée svp ?
Test.txt =
Extrait 1
Definiton : insert-ligne
Condition = machine/dev
Descritption : définition ligne
Extrait 2 :
Definiton 2 : insert-
Condition = machine-dev. OODEF VariableXXXX/1
Descritption : définition ligne
Extrait 3 :
Definiton 1 : insert-ligne (…)
Journal La commande ack, one step beyond grep !
L'URL du site de la commande ack annonce la couleur1 : https://beyondgrep.com/. J'ai l'habitude d’agripper les motifs avec grep, mais je m'essaie depuis quelques temps à les acquérir avec ack 2. Le deuxième et dernier journal sur cette commande datant d'avril 2013 (voir le tag ack), il est temps de faire une piqûre de rappel aux citoyens du libre.
Version 3
En 2019, ack est passée en version 3. La version actuelle est la 3.5.0 (mars (…)
Lien les regex expliquées
Journal SpiderMonkey et V8 travaillent ensemble
Là, si tu connais ces deux noms, tu te dis que c'est pas possible en fait. Ils doivent bien se connaître, mais travailler ensemble ?
Pour ceux qui découvrent : SpiderMonkey est le moteur JavaScript de Firefox, fait par Mozilla, et V8 celui de Chromium/Chrome, maintenu par Google.
Et il se trouve que oui, il y a des domaines où ils y trouvent un intérêt, les expressions rationnelles : https://hacks.mozilla.org/2020/06/a-new-regexp-engine-in-spidermonkey/
Visiblement, Mozilla a longtemps utilisé une version patchée du moteur (…)
Lien Parce que les regex, ça va bien cinq minutes
Forum Programmation.shell [Bash] Limiter taille substring
Hello tout le monde.
Dans un exemple type de strings comme suit :
[fuse.ssh] /media/myMountPath 411GB / 921GB (42%)
[glusterfs] /media/superStorage 0.5TB / 1.1TB (50%)
[ext42] /hello/world 25KB / 42KB (57%)
J'essaye, en bash, de limiter la taille des substrings afin de les empêcher de sortir de leur container.
Donc question :
Comment faire pour limiter la taille des sous chaines [formatage] et /point/de/montage sans toucher au reste.
Forum Programmation.shell Extraire des données avec la commande grep
Forum Programmation.shell petit souci avec la commande grep
bonjour a tous !
étant debutant dans le shell je commence doucement mais la j'ai beau faire des recherche mais je ne trouve pas la solution a mon problème:
grep -in '^[0-9]{1 4}" "[a-z]{1 3}" "(1[6-9]\|2[0-9]\|3[0-3]\|75\|78\|9[1-5])' $1
je souhaite récupérer les ligne commençant par :
1 a 4 chiffre puis
un espace puis
1 a 3 lettre puis
la sa se complique un peut : (sois un chiffre entre 16 et 33, sois 75 sois 78 sois 91 a 95
Journal Ligne de commande : les 20 mémos d'un « autodidacte »
Depuis avril 2018 j'ai eu l'occasion de publier sur le Grimoire-Command.es les 20 mémos du précédent secrétaire de Gebull (le LUG de Bressuire).
Les sujets abordés sont variés et représentent quelques décennies de lecture de forum et de tâtonnements, scrupuleusement notés et repris en fiches synthétiques.
Comme le reste du grimoire, ce sont des mémos, des penses-bêtes, pour retrouver rapidement une commande que l'on a déjà utilisée ou aperçue. Comme pour les grimoires de jeux de rôle, il faut donc (…)
Forum Programmation.autre Expression régulière
Bonjour, je suis un peu perdu dans les expressions régulières. Je voudrais remplacer tous les « A » par des « a » mais seulement dans le cas où « a » n'est pas suivi ou précédé par un ou plusieurs « a ».
Par exemple, l'expression régulière devrait trouver et remplacer
« abord » par « Abord » mais ne devrait pas toucher à
« baabor », « taaabour », mais devrait remplacer
« bbaatar » par « bbaatAr »
J'espère que c'est clair. Merci d'avance pour votre aide.
Travailler avec des expressions rationnelles
Les expressions rationnelles sont un outil d’analyse de texte par un ordinateur. Elles permettent de décrire des enchaînements de caractères d’une complexité suffisamment grande pour être réellement utiles, mais suffisamment faible pour être implémentées efficacement. Elles sont d’une importance capitale pour le théoricien des langages comme pour l’UNIX power user.
Dans cette dépêche, nous :
- décrivons brièvement la notion abstraite d’expression rationnelle et recensons les implémentations les plus courantes sur un système Unix ;
- présentons quelques commandes permettant de rechercher des motifs décrits par une expression rationnelle dans un texte, réécrire des fichiers automatiquement ou transformer et analyser des fichiers structurés automatiquement en utilisant des expressions rationnelles ;
- montrons comment améliorer votre productivité avec Emacs grâce aux expressions rationnelles.
Dans cette dépêche, nous allons nous pencher sur les expressions rationnelles (souvent nommées abusivement expressions régulières suite à une traduction littérale de regular expression). Elles permettent de représenter formellement un motif de recherche, par exemple : un caractère alphabétique majuscule suivi de quatre caractères minuscules, puis deux chiffres et un point à la fin. Les expressions rationnelles représentent un outil puissant pour qui sait les utiliser à bon escient mais nécessitent une phase d’apprentissage non négligeable. La diversité des moteurs et des syntaxes n’aide pas non plus à leur simplicité, et les confusions entre les différents outils peuvent parfois donner des résultats surprenants.
Forum Programmation.c++ [Résolu] Erreur immonde avec boost/regex
Hello,
J'essaye d'écrire un programme pour classer mes milliers de photos dans des dossiers, selon leur date de prise de vue.
Une grande partie est constituée de captures d'écran ou de photos échangées par Facebook/MMS/autre, et les données EXIF ne contiennent donc pas cette date. Les dates de création et de modification des fichiers ne correspondent pas non plus.
En revanche, beaucoup de fichiers ont leur date de prise de vue dans leur nom, de la forme : IMG_20151226_124053.jpg
(pris (…)