J'ai un fichier txt généré. Ce fichier contient certaines lignes qui sont superflues et doivent être supprimées. Chaque ligne à supprimer est l’une des deux chaînes de la ligne; "ERREUR" ou "REFERENCE". Ces jetons peuvent apparaître n'importe où dans la ligne. Je voudrais supprimer ces lignes, tout en conservant toutes les autres lignes.
Donc, si le fichier txt ressemble à ceci:
Bonne ligne de données Mauvaise ligne de C:\Répertoire\ERROR\myFile.dll Une autre bonne ligne de données Mauvaise ligne: REFERENCE Bonne ligne
Je voudrais que le fichier se termine comme ceci:
Bonne ligne de données Une autre bonne ligne de données Bonne ligne
TIA.
Utilisez le suivant:
type file.txt | findstr /v ERROR | findstr /v REFERENCE
Cela présente l'avantage d'utiliser des outils standard dans le système d'exploitation Windows, plutôt que de devoir rechercher et installer sed/awk/Perl, etc.
Voir la transcription suivante pour son fonctionnement:
C: \> type fichier.txt Bonne ligne de données Mauvaise ligne de C:\Répertoire\ERROR\myFile.dll Une autre bonne ligne de données mauvaise ligne: REFERENCE Bonne ligne C: \> type file.txt | findstr/v ERROR | findstr/v REFERENCE Bonne ligne de données Une autre bonne ligne de données Bonne ligne
Vous pouvez réaliser la même solution que celle de @paxdiablo en utilisant simplement findstr par elle-même. Il n'est pas nécessaire de combiner plusieurs commandes:
findstr /V "ERROR REFERENCE" infile.txt > outfile.txt
Détails de comment cela fonctionne:
Si vous avez sed:
sed -e '/ REFERENCE/d' -e '/ ERREUR/d' [FILENAME]
Où FILENAME est le nom du fichier texte avec les bonnes et mauvaises lignes
Si vous avez installé Perl, alors Perl -i -n -e"print unless m{(ERROR|REFERENCE)}"
devrait faire l'affaire.