Commande sed

Résolu/Fermé
simo - 27 févr. 2008 à 15:00
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 28 févr. 2008 à 11:02
Bonjour,
Je veux modifier la balise name qui est juste aprés la balise <b>

fichier en entée :
<a>
<name = toto>
<b>
<name = titi>

fichier en sortie :

<a>
<name = toto>
<b>
<nom = titi>

23 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
27 févr. 2008 à 15:03
Salut,
 sed '/<b>/{n;s/name/nom/}'
;-))
0
ça ne marche pas :(
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
27 févr. 2008 à 15:52
T'es sûr ?
jp@MDK:~/tmpfs ssh$ cat plop
<a>
<name = toto>
<b>
<name = titi>

jp@MDK:~/tmpfs ssh$ sed '/<b>/{n;s/name/nom/}' plop
<a>
<name = toto>
<b>
<nom = titi>

jp@MDK:~/tmpfs ssh$
;-))
0
ça ne marche pas avec korn shell sous aix?!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
27 févr. 2008 à 16:26
T'as pas un message d'erreur ?
0
Analyse syntaxique de la fonction /<b>/{n;s/name/nom/} impossible.
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
27 févr. 2008 à 16:35
Essaies sans les chevrons :
sed '/b/{n;s/name/nom/}'
ou en les protégeant :
sed '/\<b\>/{n;s/name/nom/}'
;-)
0
le problème persiste, je crois que c le {n qui lui pose problème :(
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
27 févr. 2008 à 16:44
Essaye avec "N" alors :
sed '/b/{N;s/name/nom/}'
0
c déjà fait :) mais ça ne marche pas :(
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
28 févr. 2008 à 08:38
Quelle version de "sed" ? (sed --version)

Tu essaies sur un exemple comme celui que tu m'as donné ou sur un autre fichier ? Si c'est le cas (autre fichier) affiche moi-le ici s'il te plaît.
0
Bonjour jipicy,
non, j'essaie sur le même fichier :)
la bonne nouvelle, c'est que je suis arrivé à le faire autrement : sed '3,4 s/name/nom/'
Merci encore :)
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
28 févr. 2008 à 09:32
la bonne nouvelle, c'est que je suis arrivé à le faire autrement
Ben c'est le principal ;-))
0
merci
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
28 févr. 2008 à 09:42
De rien, mais j'ai pas fait grand chose sur ce coup là ;-))
0
t'es le meilleur ;)
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
28 févr. 2008 à 09:56
Loin s'en faut ;-)
0
Non, je t'assure que tu l'es :) t'es réactif aux questions posées et c'est le genre de personne dont on a besoin au niveau des forums ;)
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
28 févr. 2008 à 10:20
;-))

Tiens, tu peux essayer ça s'il te plaît (normalement "ed" doit être installé nativement) :
ed -s fichier <<< $'/b/ +1 s/name/nom/\n,p'
et si ça marche essaie derrière :
ed -s fichier <<< $'/b/ +1 s/name/nom/\nw'
Merci ;-)
0
erreur :

ksh: 0403-057 Erreur de syntaxe.: `<' imprévu.
0