Rechercher une chaîne de texte et remplacer la ligne entière qui la contient sur un groupe de fichiers texte (Windows)

0

Je cherche une solution automatisée qui puisse rechercher si une chaîne de texte spécifiée est sur une ligne (peut ne pas correspondre exactement - tant que la chaîne de texte spécifiée est contenue dans la ligne) sur un groupe de fichiers texte et supprime toute la ligne (ou les lignes) où la chaîne de texte est / est trouvée et remplacez-la par une chaîne de texte que je spécifie. J'utilise Windows 7.

Raison pour cela: je modifie des fichiers AI pour un vieux jeu de stratégie ( Total Annihilation ). Les fichiers AI sont essentiellement des fichiers texte, avec un fichier AI différent par type de carte. Si je veux faire une édition particulière la même dans tous les fichiers AI, je devrais éditer beaucoup de fichiers texte.

galacticninja
la source

Réponses:

2

Notepad ++, http://notepad-plus-plus.org/ (également disponible en tant qu'application portable), effectuera une recherche et remplacera les fichiers du répertoire en cours et de tous les sous-répertoires à l'aide d'expressions régulières. Dans le menu de recherche, allez remplacer et Cliquez ensuite sur l'onglet "Rechercher dans les fichiers", sélectionnez le type de mode de recherche "expression régulière" "^. your_string. $" dans le champ de recherche et "your_new_string" dans le champ "remplacer par".

mieux le tester en premier.

Mohamed
la source
2

Vous pouvez utiliser sedsous Windows. Une source est GnuWin32 . Une commande typique pourrait ressembler à ceci:

sed '/search pattern/s/^.*$/This is the new text/' file*.txt

qui dit "sur chaque ligne de chaque fichier (fichier nommé [quelque chose] .txt) qui inclut le" motif de recherche "dans le texte, remplacez la ligne entière par" Ceci est le nouveau texte ".

Des opérations plus complexes peuvent être effectuées à l'aide d'expressions régulières et d'autres commandes.

Dennis Williamson
la source
0

AutoIt peut le faire facilement. Vous pouvez consulter cet article pour un exemple que j'ai écrit et qui ressemble à ce dont vous avez besoin. La source que j'ai fournie n'aurait besoin que d'une légère modification pour répondre à vos besoins et pourrait être conçue pour traiter tous les fichiers à la fois.

MaQleod
la source