Sed n'est pas encore sous contrôle ...

bkrqpzef Messages postés 213 Statut Membre -  
jipicy Messages postés 41342 Statut Modérateur -
Salut salut,
Je suis encore bloqué avec l'utilisation de SED, avec la commande :
sed -i '/bateau/{s##maison#;q}'  fichier


La commande fonctionne mais supprime le reste du fichier après la ligne concernée.
Help.
A voir également:

5 réponses

jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

Ben c'est normal, c'est ce que tu demandes avec la commande "q" :
quitter sed sans procéder à aucune autre commande ni évaluer une autre entrée...

Dont acte.

Au passage, "s##maison#" c'est sensé faire quoi ? (remplacer rien par maison ?)
0
bkrqpzef Messages postés 213 Statut Membre 5
 
Yop Jipicy,
Cf message 4 de : http://www.commentcamarche.net/forum/affich 11587230 sed et ses caprices ou les miens?#4
s//MAISON/
Pas la peine de répéter le motif vu que c'est celui-là même qu'on veut remplacer, donc on utilise la syntaxe s// qui correspond à s/BATEAU/ 

Le changement fonctionne bien mais comment lui expliquer de s'arrêter afin de ne pas faire plusieurs fichiers --> Ce qui explique l'utilisation des { } par exemple dans un :
sed -i '/bateau/{s##maison#;q}'  fichier*.txt

Sans pour autant supprimer le reste du fichier modifié surtout :D
thx
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
;-[

C'est vrai que sorti du contexte j'avais du mal à saisir ;-(

Bon pour le reste faudrait en savoir davantage.
C'est juste le 1er motif rencontré que tu veux remplacer ?
0
bkrqpzef Messages postés 213 Statut Membre 5
 
Voilà imaginons deux fichiers :

fichier1.txt :
bateau
bateau
bateau

fichier2.txt :
bateau
bateau
bateau

J'aimerai que cela devienne :

fichier1.txt :
maison
bateau
bateau

fichier2.txt :
bateau
bateau
bateau

Si je lance une deuxième fois :

fichier1.txt :
maison
maison

bateau

fichier2.txt :
bateau
bateau
bateau

Et une quatrième fois par exemple :

fichier1.txt :
maison
maison
maison


fichier2.txt :
maison
bateau
bateau

La commande
sed -i '/bateau/{s##maison#;q}'  fichier*.txt
me convient presque mais retourne :

fichier1.txt :
maison

fichier2.txt :
bateau
bateau
bateau

:)
0

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

Posez votre question
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Re-

Euh...ça je crois que ça va pas être possible ;-((

C'est possible sur la sortie standard, mais pas avec l'option "-i".
0