Modifier une occurence avec SED

Fermé
pcsystemd Messages postés 691 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 15 janvier 2024 - 22 févr. 2018 à 17:23
pcsystemd Messages postés 691 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 15 janvier 2024 - 16 mai 2018 à 11:30
Bonjour,

J'ai un fichier qui contient des centaines de lignes comme celles qui suivent :

Me|SED|LIA|li.ne@tit.fr|060000934|Con|f|f|08/03/2018 00:00:00|AQ J'M
M|SES|STIE|stnie.se3@rty.com|07 00 31 21 63||1 I.C.I. Ca|t|f|08/03/2018 00:00:00|ANE J'M


Je voudrais modifier les |f| en |Non| et les |t| en |Oui|

J'ai essayé
sed -e 's/|f|/|Non|/g'
mais cela ne fonctionne pas.

Une idée?
Merci



A voir également:

3 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
22 févr. 2018 à 18:43
Salut,

$ cat fich 
Me|SED|LIA|li.ne@tit.fr|060000934|Con|f|f|08/03/2018 00:00:00|AQ J'M
M|SES|STIE|stnie.se3@rty.com|07 00 31 21 63||1 I.C.I. Ca|t|f|08/03/2018 00:00:00|ANE J'M

$ sed 's/\bf\b/Non/g;s/\bt\b/Oui/g' fich
Me|SED|LIA|li.ne@tit.fr|060000934|Con|Non|Non|08/03/2018 00:00:00|AQ J'M
M|SES|STIE|stnie.se3@rty.com|07 00 31 21 63||1 I.C.I. Ca|Oui|Non|08/03/2018 00:00:00|ANE J'M

;-)

0
pcsystemd Messages postés 691 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 15 janvier 2024 22
23 févr. 2018 à 06:46
Bonjour et merci zipe31.

Je vais regarder a quoi correspond l'option b. Je suppose que c'est pour indiquer que ce doit être l’occurrence strict a modifier!
0
Utilisateur anonyme
23 févr. 2018 à 07:23
info 'sed' 'sed regular expressions' 'regexp extensions'
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
23 févr. 2018 à 08:59
Salut,

Tu as une définition succincte dans la FAQ sur SED :
\b

correspond à une chaîne vide à l'extrémité d'un mot. Limite entre un mot et un caractère autre qu'un mot


\B

correspond à une chaîne vide ne se trouvant pas à une extrémité de mot. Limite entre un caractère autre qu'un mot et un mot

\<

correspond à une chaîne vide en début de mot


\>

correspond à une chaîne vide en fin de mot


Sinon le
man grep
en parle aussi :

   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.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407 > zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021
23 févr. 2018 à 09:07
En français c'est mieux ;-))
   Caractère contre-oblique et les expressions spéciales
Les symboles \< et \> correspondent respectivement à une chaîne vide en début et en fin de mot. Le symbole \b correspond à une chaîne vide à l'extrémité d'un mot, et \B correspond à une chaîne vide ne se trouvant pas à une extrémité de mot.
0
pcsystemd Messages postés 691 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 15 janvier 2024 22
16 mai 2018 à 11:30
Merci un peu en retard mais vaut mieux tard que jamais. ;-)

0