Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
865 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Résolu][SH-Sed] Supprimer une partie d'un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu][SH-Sed] Supprimer une partie d'un fichier

n°1622975
Sub-N
Dead inside
Posté le 12-10-2007 à 15:06:34  profilanswer
 

Salut
La réponse est certainement triviale, mais je n'arrive pas à la trouver [:transparency] :
 
J'ai un fichier "bla" :

Code :
  1. Balise1 blablabla
  2. blablabla
  3. blablabla
  4. Balise2
  5. ligne à virer
  6. une autre ligne à virer
  7. Balise3
  8. héhéblabla
  9. héhéblabla


 
Je souhaite virer ce qu'il y a entre Balise2 et Balise3 (Balise2 et Balise3 non comprises), et ce avec un Sed.
 

Code :
  1. sed '/Balise2/,/Balise3/d' bla > myOutput


C'est bien joli, mais ça me vire les lignes contenant Balise2 et Balise3 :

Code :
  1. Balise1 blablabla
  2. blablabla
  3. blablabla
  4. héhéblabla
  5. héhéblabla


 
J'ai réussi en "trichant" :

Code :
  1. sed -n '/Balise1/,/Balise2/p' bla > myOutput
  2. sed -n '/Balise3/,$p' bla >> myOutput


 
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 !  [:hello_cass]


Message édité par Sub-N le 25-10-2007 à 14:19:07
mood
Publicité
Posté le 12-10-2007 à 15:06:34  profilanswer
 

n°1623754
Sub-N
Dead inside
Posté le 15-10-2007 à 11:54:29  profilanswer
 

Personne n'a une petite idée ? :)

n°1624106
rengzehn
Posté le 15-10-2007 à 17:42:32  profilanswer
 

hum tu as essayé de substitute
 
Balise2
ligne à virer
une autre ligne à virer
Balise3
 
par  
 
Balise2\nBalise3 ?
 

n°1624373
Sub-N
Dead inside
Posté le 16-10-2007 à 09:19:07  profilanswer
 

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)

n°1624388
rengzehn
Posté le 16-10-2007 à 09:41:42  profilanswer
 

remplacer
 
Balise2
ligne à virer
une autre ligne à virer
Balise3
 
par  
 
Balise2
Balise3

n°1624458
Sub-N
Dead inside
Posté le 16-10-2007 à 10:44:21  profilanswer
 

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 :/
 

n°1625890
aigles
Posté le 17-10-2007 à 18:50:21  profilanswer
 

sed -n '1,/Balise2/p;/Balise3/,$p' bla


 


Message édité par aigles le 17-10-2007 à 18:51:15

---------------
Jean Pierre.
n°1626062
Sub-N
Dead inside
Posté le 18-10-2007 à 00:34:31  profilanswer
 

Ah ouais :D
Merci !
Punaise, faut vraiment que je me trouve une bonne doc sur sed moi :)

n°1783889
Tamahome
⭐⭐⭐⭐⭐
Posté le 08-09-2008 à 14:47:17  profilanswer
 

dans le meme genre, j'ai un pbm équivalent :
 

toto
voiture rouge
vélo bleu
camion vert;


 
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


Message édité par Tamahome le 08-09-2008 à 14:47:55

---------------
Hobby eien /人◕ ‿‿ ◕人\

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Résolu][SH-Sed] Supprimer une partie d'un fichier

 

Sujets relatifs
Mauvaise manipe = comment supprimer un fichier ?[résolu]control ACCESS et VBA
[Résolu] Parse error[Résolu] PHP en ligne de commande et les includes
Supression caractères dans nom fichier[RESOLU] problème d'heure dans requête mysql (heure d'hiver)
Extraire une partie d'un fichier texte[Resolu]DBI::mysql -> out of memory
Plus de sujets relatifs à : [Résolu][SH-Sed] Supprimer une partie d'un fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR