Effacer une ligne de texte contenant un certain mot

J’ai cherché assez vite sur ce forum, pas trouvé …

Je me suis plusieurs fois retrouvé dans cette situation : je veux faire le ménage dans un .TXT et supprimer les lignes contenant tel ou tel mot.

Je ne sais pas utiliser un language de script ou de programmation genre python ou autre, et je ne sais pas si un programme propose déjà cette fonctionnalité, si on peut faire ça simplement avec VI ou VIM.

J’aurais peut-être dû demander dans la rubrique programmation mais bon comme je programme pas :s.

Voilà un exemple de texte assez long où je voudrais effacer les lignes contenant le caractère “-” :

http://zonas.free.fr/test/convert-blades.txt

(Pour les curieux il s’agit de la tables d’associations des armes dans Vagrant Story)

Merci d’avance B)

J’ai 10 000 manières de faire ce genre de trucs pour toi. Je vais commencer par la plus simple : [ol]
[li]Télécharge Ultra Edit, un éditeur de texte super bien fait[/li][li]Installe le[/li][li]Ouvre ton fichier texte[/li][li]Menu Rechercher > Remplacer[/li][li]Dans la case “Remplacer Quoi” tu met %ton_mot$ (par exemple : %Axe$)[/li][li]Dans la case “Par Quoi” tu ne met rien[/li][li]Tu coche “Expressions régulières” [/li][li]Et finalement “Démarrer”[/li][/ol]Et voilà B)

A noter que tu parvenir au même résultat avec n’importe quel soft qui gère les expressions régulières. La syntaxe peut varier de l’un à l’autre.

Tu devrait pouvoir t’en tirer avec grep, en utilisant une commande du style :

L’option -v permettant d’inverser la selection.

[quote=“Staz, post:3, topic: 32749”]L’option -v permettant d’inverser la selection.[/quote]beh tiens on en apprend tous les jours.

EDIT : petite info si tu as grep sous windows, la commande ressemble du coup a : grep -v "-" fichier.txt > new-fichier.txt

Pas réussi à télécharger ce shareware d’ultra edit.
Dans notepad2 y a aussi un truc expression régulière mais la syntaxe doit pas être pareille.
J’ai installé grep pour windows, et la commande -v marche juste pour faire je que je veux.

Merci beaucoup B) !

[quote=“AcidBen, post:4, topic: 32749”]beh tiens on en apprend tous les jours.
EDIT : petite info si tu as grep sous windows, la commande ressemble du coup a : grep -v "-" fichier.txt > new-fichier.txt[/quote]
c’est pareil sous unix, le cat est redondent (ortho) dans le premier exemple B)

Je crois que c’est les expressions régulières POSIX (pareil que celles de grep) dans notepad, donc un “^.Axe.$” aurait fait ce que tu voulais.

Bon bah merchi bhôkoùpe.
On peut faire beaucoup de trucs sans savoir programmer si on pose tout le temps des questions B)

http://www.gnulamp.com/sed.html

Au lieu de mettre des “w file” en flag, il suffisait de mettre “file > newfile” au lieu de “file”. “w file” ne fait qu’écrire les lignes où le texte a changé.
Le premier tutorial que j’ai lu a pas l’air assez complet B) .

Ca donne :

http://www.grymoire.com/Unix/Sed.html
Avec les variables je devrais pouvoir automatiser le script pour plusieurs fichiers.

Ma musique étant sur des partitions NTFS, j’ai essayé de créer un script shell pour remplacer toutes les occurrences de D: en /media/hda4, H: en /media/hdb1 et les antislashs en slashs. J’ai tenté ma chance avec la commande sed, dans un terminal ça marche mais en rajoutant les “w test.M3U” ça me sort un fichier vide.

[code]#/bin/sh

cd /home/tobi/linux-playlist/

cp lz.M3U test_old.M3U
sed -e ‘s/\///gw test.M3U’ -e ‘s/D://media/hda2/gw test.M3U’ -e ‘s/H://media/hdb1//gw test.M3U’ -e ‘s/I://media/hdc1/gw test.M3U’ test.M3U[/code]
Ca m’a pas l’air d’être la meilleure solution, vous avez pas mieux, genre un modèle de script pour juste remplacer plusieurs occurrences de texte dans tous les fichiers d’un certain dossier ?

passe par un fichier temporaire, puis ecrase la source avec apres traitement

(la premiere solution ne marchait pas non plus)

tain ca faisait 3 ans que le gars attendait ta reponse :wink:

PEUT ETRE!

Sur le fond surement. Maintenant, tu apportes rien de plus à la reponse (sed ayant déjà été cité 10 fois), et tu deterres des trucs vieux de 3 ans, mais effectivement, pourquoi pas :wink:

haha :slight_smile:

Faire se relever des threads morts depuis longtemps… Nécromancien va !

Ouais, ça me fait penser au super film “Sed is dead”, avec un aspirateur.

Tu ne connais pas le second degré ? :devil: