Shell : mini script pour l'utilisation de sed

Shell : mini script pour l'utilisation de sed - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 04-09-2007 à 19:34:39    

Bonjour la communauté,
 
je ne suis malheureusement pas développeur, mais simple utilisateur (et heureux) d'Ubuntu.
venons en au fait :
 
j'ai un fichier .txt de plusieurs milliers de lignes (source.txt). J'aimerai supprimer toutes les lignes de ce fichier commençant par une expression (chaines de caractères alphanumérique classique). J'ai un second fichier txt (detruire.txt) qui contient la liste de ces expressions (1 seule par ligne).
 
Virer toutes ces lignes à la main c'est bien mais c'est chiant :
 
sed -e '/expression/d' source.txt
 
Est-ce que quelqu'un aurait le talent de me donner un petit script qui me permettrait de simplement indiquer le nom du fichier source, le nom du fichier expression, et qui ferait la commande SED qui va bien ?
 
D'avance un grand, un immennnnnnse merci ! (j'en ai un peu marre de me farcir ça à la main...)

Reply

Marsh Posté le 04-09-2007 à 19:34:39   

Reply

Marsh Posté le 04-09-2007 à 20:12:31    

wile read line;
do
   sed options_qui_vont_bien $line blabla;
done < detruire.txt


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 06-09-2007 à 11:14:04    

pourquoi ne pas faire l'inverse ?
 
Un truc genre
grep -E 'maregexquejeveuxmatcher' monfichier.entree > monfichier.sortie

Reply

Marsh Posté le 06-09-2007 à 13:31:02    

En fait grep fait ça directement avec -f et -v :

grep -v -f detruire.txt source.txt


Evidemment il faut jouer avec les autres options suivant le type d'expressions que tu as dans detruire.txt (par exemple ajouter -F si ce sont des lignes de texte brut et pas des regexp).

Reply

Marsh Posté le 06-09-2007 à 14:59:23    

moi on m'a dit sed, je répond sed hein ^^
mais puissant le coup du gep, connaissait pas :)


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed