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 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

pingouinux a écrit :

Bonjour,
Tu peux essayer

sed  '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.

Hors 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. lol

Dernière modification par Watael (Le 05/11/2021, à 15:51)


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

En ligne

#11 Le 05/11/2021, à 16:38

erresse

Re : Editeur -Chercher/Remplacer une chaine par même chaîne+ caractères

En effet... roll
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.

Hors 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
cool

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
tongue


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.

Hors 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...
roll
d'accord, c'est le weekend, mais j'ai quand même autre chose à faire.
lol lol lol

Dernière modification par Watael (Le 05/11/2021, à 18:48)


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

En 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 tongue

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 lol

(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,

erresse a écrit :

@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
tongue

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