Supprimer une partie d'un fichier [Résolu][SH-Sed] - Shell/Batch - Programmation
Marsh Posté le 15-10-2007 à 17:42:32
hum tu as essayé de substitute 
 
Balise2 
ligne à virer 
une autre ligne à virer 
Balise3 
 
par  
 
Balise2\nBalise3 ? 
 
Marsh Posté le 16-10-2007 à 09:19:07
Euh, je vais t'avouer que je ne comprends pas trop ce que tu veux faire. 
Tu parles de ça ? 
 
sed 's/Balise2\nBalise3//' ? (cela ne marche pas)
Marsh Posté le 16-10-2007 à 09:41:42
remplacer 
 
Balise2 
ligne à virer 
une autre ligne à virer 
Balise3 
 
par  
 
Balise2 
Balise3 
Marsh Posté le 16-10-2007 à 10:44:21
Bon, j'ai trouvé ça : 
 
sed  '/Balise2/,/Balise3/{ /Balise2/b;/Balise3/b; s/.*//; }' essai.txt 
 
Cependant, ça remplace mes lignes a effacer par des lignes vides (il reste les LF quoi). Mais je dois avouer que je ne comprends pas vraiment ce que fait exactement cette commande. 
 
/Balise2/,/Balise3/  : bon, ok, on borne une zone 
s/.*// : on remplace tous les caractères par "rien". 
 
Mais pour le reste 
 
 
Marsh Posté le 17-10-2007 à 18:50:21
sed -n '1,/Balise2/p;/Balise3/,$p' bla  | 
 
 
Marsh Posté le 18-10-2007 à 00:34:31
Ah ouais 
 
Merci ! 
Punaise, faut vraiment que je me trouve une bonne doc sur sed moi ![]()
Marsh Posté le 08-09-2008 à 14:47:17
dans le meme genre, j'ai un pbm équivalent : 
 
toto   | 
 
 
je voudrais virer tout entre "voiture rouge" et "camion vert" (y compris ces 4 mots, mais pas le point-virgule de la fin (c'est la que je seche)), pour avoir ca : 
 
toto   | 
 
 
J'ai bêtement essayé la suppression de lignes : 
 
sed "/voiture rouge/,/camion vert/d" in.txt >out.txt 
 
mais évidemment ca me supprime le point-virgule, puisque sur la meme ligne... 
 
si quelqu'un a la solution, je suis preneur 
 
 
merci
Marsh Posté le 12-10-2007 à 15:06:34
Salut
 : 
La réponse est certainement triviale, mais je n'arrive pas à la trouver
J'ai un fichier "bla" :
Je souhaite virer ce qu'il y a entre Balise2 et Balise3 (Balise2 et Balise3 non comprises), et ce avec un Sed.
C'est bien joli, mais ça me vire les lignes contenant Balise2 et Balise3 :
J'ai réussi en "trichant" :
mais il est certainement possible de faire ça en une seule ligne, nan ?
Si quelqu'un pouvait m'éclairer, et satisfaire ma curiosité, ce serait vraiment sympatoche !
Message édité par Sub-N le 25-10-2007 à 14:19:07