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 “-” :
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.
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.
[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)
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) .
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 ?
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