Menu

Modifier une occurence avec SED

pcsystemd 536 Messages postés dimanche 27 novembre 2005Date d'inscription 17 mai 2018 Dernière intervention - 22 févr. 2018 à 17:23 - Dernière réponse : pcsystemd 536 Messages postés dimanche 27 novembre 2005Date d'inscription 17 mai 2018 Dernière intervention
- 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



Afficher la suite 

Votre réponse

6 réponses

zipe31 35578 Messages postés dimanche 7 novembre 2010Date d'inscriptionContributeurStatut 17 mai 2018 Dernière intervention - 22 févr. 2018 à 18:43
0
Utile
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

;-)

Commenter la réponse de zipe31
pcsystemd 536 Messages postés dimanche 27 novembre 2005Date d'inscription 17 mai 2018 Dernière intervention - 23 févr. 2018 à 06:46
0
Utile
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!
Utilisateur anonyme - 23 févr. 2018 à 07:23
info 'sed' 'sed regular expressions' 'regexp extensions'
zipe31 35578 Messages postés dimanche 7 novembre 2010Date d'inscriptionContributeurStatut 17 mai 2018 Dernière intervention - 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.
zipe31 35578 Messages postés dimanche 7 novembre 2010Date d'inscriptionContributeurStatut 17 mai 2018 Dernière intervention > zipe31 35578 Messages postés dimanche 7 novembre 2010Date d'inscriptionContributeurStatut 17 mai 2018 Dernière intervention - 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.
Commenter la réponse de pcsystemd
pcsystemd 536 Messages postés dimanche 27 novembre 2005Date d'inscription 17 mai 2018 Dernière intervention - 16 mai 2018 à 11:30
0
Utile
Merci un peu en retard mais vaut mieux tard que jamais. ;-)

Commenter la réponse de pcsystemd