#1 Le 05/11/2021, à 09:42
- bjc49
Editeur -Chercher/Remplacer une chaine par même chaîne+ caractères
Bonjour,
Soit un fichier texte du style :
N0609 A verifier + voir la citation de toutes les sources MPF JMO etc
I0051 Barbier, n. 10/1/1898 d. 24/8/1918
Leopold,François,Constant
N0440 Prendre en compte les renseignements mis sur la photo du couple
ou voir geneanet
I0067 Barbier, n. 30/6/1855
Louis,Auguste
N0472 Relire l'acte de mariage demande FDA
Relire transcription décès mairie d'Évron (12/9/2014)
I0048 Barbier, n. 31/3/1889 d. 29/5/1978
Louise,Augustine
N0591 Acte de décès a relire demande FDA
I0001 Barbier, n. 19/2/1853 d. 12/9/1907
René,Frédéric
N0474 Saisir sources MD + Mil
I0049 Barbier, n. 15/4/1891 d. 4/1/1957
René,Georges,Constant
Je voudrais :
1 - Remplacer toutes les chaînes de caractères Nxxxx par # [[Nxxxx]]
Nxxxx étant la chaîne commune
Ex : N0609 par # [[N0609]]
un espace entre # et [[N0609]]
2 - Même traitement pour la chaîne Ixxxx
J'ai essayé avec kate mais je ne sais exprimer que la substitution doit reprendre un même chaîne
Sans doute un variable à créer mais mes connaissances ne sont pas suffisantes et je n'ai pas trouvé de doc sur ce cas
Merci
Pour info ceci pour réaliser un transfert d'une Todolist de Gramps (logiciel de généalogie) vers Obsidian (logiciel de prise de notes)
Cordialement
Jean-Claude
Config :KDE Neon 6 --HP EliteDesk 800 G4 DM 35W
DDR4 16Go--Proc: Intel core I5 8500T --SSD 1To Nvme--UHD Graphics 630 --Écran:IIyama Prolite B2209HDS
Webcam : Logitech QuickCam Communicate STX --Imprimante : HL 1430--Scanner : Epson Perfection V330
Hors ligne
#2 Le 05/11/2021, à 09:53
- pingouinux
Re : Editeur -Chercher/Remplacer une chaine par même chaîne+ caractères
Bonjour,
Tu peux essayer
sed 's/^[NI][0-9]\+/# [[&]]/' fichier.txt >fichier_modifie.txt
Hors ligne
#3 Le 05/11/2021, à 12:40
- gigiair
Re : Editeur -Chercher/Remplacer une chaine par même chaîne+ caractères
Bonjour,
Tu peux essayersed 's/^[NI][0-9]\+/# [[&]]/' fichier.txt >fichier_modifie.txt
Personnellement j'aurais plutôt utilisé la commande :
sed 's/\<[NI][0-9]\{4\}\>/# [[&]]/' fichier.txt >fichier_modifie.txt
Rien n'indique dans l'énoncé que la chaîne à remplacer est en début de ligne.
--
JJR.
Hors ligne
#4 Le 05/11/2021, à 13:16
- pingouinux
Re : Editeur -Chercher/Remplacer une chaine par même chaîne+ caractères
@gigiair #3
En toute rigueur tu as raison. J'ai rédigé une commande adaptée au fichier fourni par bjc49, quitte à la modifier si nécessaire.
Hors ligne
#5 Le 05/11/2021, à 13:47
- gigiair
Re : Editeur -Chercher/Remplacer une chaine par même chaîne+ caractères
Je crois qu'il faut être extrêmement rigoureux quand on utilise des regexps, surtout de la façon dont tu le propose sans aucune vérification interactive. Une regexp erronée peut avoir un effet dévastateur sur un fichier sensible.
Personnellement pour mettre au point une regexp, j'utilise Emacs et sa fonction re-builder qui permet de vérifier visuellement sa portée.
--
JJR.
Hors ligne
#6 Le 05/11/2021, à 14:58
- bjc49
Re : Editeur -Chercher/Remplacer une chaine par même chaîne+ caractères
Bonjour,
Merci a tous les deux
Cela fonctionne
C'est un peu "cabalistique" pour moi
Je vais regarder cet commande sed
Auriez vous connaissance d'une doc en français
Cordialement
Jean-Claude
Config :KDE Neon 6 --HP EliteDesk 800 G4 DM 35W
DDR4 16Go--Proc: Intel core I5 8500T --SSD 1To Nvme--UHD Graphics 630 --Écran:IIyama Prolite B2209HDS
Webcam : Logitech QuickCam Communicate STX --Imprimante : HL 1430--Scanner : Epson Perfection V330
Hors ligne
#7 Le 05/11/2021, à 15:08
- Tawal
Re : Editeur -Chercher/Remplacer une chaine par même chaîne+ caractères
Hello,
Le man en français :
man sed en français
Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !
Hors ligne
#8 Le 05/11/2021, à 15:23
- bjc49
Re : Editeur -Chercher/Remplacer une chaine par même chaîne+ caractères
Merci Tawai
Config :KDE Neon 6 --HP EliteDesk 800 G4 DM 35W
DDR4 16Go--Proc: Intel core I5 8500T --SSD 1To Nvme--UHD Graphics 630 --Écran:IIyama Prolite B2209HDS
Webcam : Logitech QuickCam Communicate STX --Imprimante : HL 1430--Scanner : Epson Perfection V330
Hors ligne
#9 Le 05/11/2021, à 15:35
- erresse
Re : Editeur -Chercher/Remplacer une chaine par même chaîne+ caractères
@giglair #3:
Peux-tu expliquer à quoi servent les deux "bornes" (\<...\>) qui encadrent la regexp ?
J'ai essayé sans les mettre et ça fonctionne très bien. Par ailleurs, comme je n'ai pas trouvé de référence à cela dans les docs de bash ou de sed, j'aimerais bien savoir quelle est leur utilité...
Merci de ton attention.
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
En ligne
#10 Le 05/11/2021, à 15:47
- Watael
Re : Editeur -Chercher/Remplacer une chaine par même chaîne+ caractères
c'est dans le man grep* :
The Backslash Character and Special Expressions
The symbols \< and \> respectively match the empty string at the beginning and end of a word. The symbol \b matches the empty string at the edge of a word, and \B matches the empty string provided it's not at the edge of a word. The symbol \w is a synonym for [_[:alnum:]] and \W is a synonym for [^_[:alnum:]]
--
* pas de bol : c'est celui que tu n'as pas ouvert.
Dernière modification par Watael (Le 05/11/2021, à 15:51)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#11 Le 05/11/2021, à 16:38
- erresse
Re : Editeur -Chercher/Remplacer une chaine par même chaîne+ caractères
En effet...
Merci Watael, toujours au top !
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
En ligne
#12 Le 05/11/2021, à 16:59
- Sciensous
Re : Editeur -Chercher/Remplacer une chaine par même chaîne+ caractères
Ma contribution: pour ne pas "dégoûter" un débutant (?) ou utilisateur du mode graphique (application), il est possible de passer par libreoffice writer (le traitement de texte) :
- mettre le contenu du fichier (ouvrir avec libreoffice)
- faire un "Rechercher et remplacer"
- Autres options: cocher "Expressions régulières"
- dans rechercher mettre la regex (ici, ^[NI][0-9]*)
- dans remplacer mettre "# [[&]]"
- Tout remplacer
mais bon la ligne de commande c'est sympa et rapide, mais faut maîtriser un minimum avant de faire des bêtises
par contre pour traiter plusieurs fichiers c'est top
Dernière modification par Sciensous (Le 05/11/2021, à 17:04)
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#13 Le 05/11/2021, à 18:43
- erresse
Re : Editeur -Chercher/Remplacer une chaine par même chaîne+ caractères
@Sciensous (complément d'information):
Sous Ubuntu-Mate, je viens de vérifier que l'éditeur de texte "Pluma" est maintenant capable de gérer les recherches/remplacement avec regexp, un peu comme le fait Writer...
Dans le cas présent, par exemple, il faut entrer les valeurs :
- Charger le fichier à modifier
- Dans le menu "Rechercher" cliquer sur "Remplacer" ou dans la barre d'outils cliquer sur la loupe avec crayon
- Dans le champ "Rechercher" mettre la regexp (ici, [NI][0-9]+)
- Dans le champ "Remplacer" mettre la regexp (ici, # [[\0]])
- Tout remplacer
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
En ligne
#14 Le 05/11/2021, à 18:46
- Watael
Re : Editeur -Chercher/Remplacer une chaine par même chaîne+ caractères
il faut vraiment avoir du temps à perdre.
et je bouge la souris
et je clique
et je bouge la souris
et je clique...
d'accord, c'est le weekend, mais j'ai quand même autre chose à faire.
Dernière modification par Watael (Le 05/11/2021, à 18:48)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#15 Le 05/11/2021, à 19:03
- Sciensous
Re : Editeur -Chercher/Remplacer une chaine par même chaîne+ caractères
ben non je fais tout avec les racourcis clavier
par contre avec sed je clique, j'ouvre FF, je clique, je cherche la bonne formule, je clique, je reclique, ... et ça plante parceque j'ai oublié un / quelquepart
(fin de mauvaise foi, perso je préfère la ligne de commande)
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#16 Le 05/11/2021, à 19:05
- bjc49
Re : Editeur -Chercher/Remplacer une chaine par même chaîne+ caractères
Bonsoir,
@Sciensous (complément d'information):
Sous Ubuntu-Mate, je viens de vérifier que l'éditeur de texte "Pluma" est maintenant capable de gérer les recherches/remplacement avec regexp, un peu comme le fait Writer...
Dans le cas présent, par exemple, il faut entrer les valeurs :
- Charger le fichier à modifier
- Dans le menu "Rechercher" cliquer sur "Remplacer" ou dans la barre d'outils cliquer sur la loupe avec crayon
- Dans le champ "Rechercher" mettre la regexp (ici, [NI][0-9]+)
- Dans le champ "Remplacer" mettre la regexp (ici, # [[\0]])
- Tout remplacer
Merci pour la suggestion
Et je viens de m'apercevoir que l'éditeur Kate intégrer a Kubuntu aurait pu m'aider également
Surtout qu'il y a une aide contextuelle dispo sur les champs "Chercher" et "Remplacer"
Mais ce doit être bien de connaître sed
Merci encore
Jean-Claude
Config :KDE Neon 6 --HP EliteDesk 800 G4 DM 35W
DDR4 16Go--Proc: Intel core I5 8500T --SSD 1To Nvme--UHD Graphics 630 --Écran:IIyama Prolite B2209HDS
Webcam : Logitech QuickCam Communicate STX --Imprimante : HL 1430--Scanner : Epson Perfection V330
Hors ligne