J'ai dix fichiers texte (délimités par des tabulations, 200K lignes). Mon intention est de rechercher des caractères [,], | et remplacez-les par a, o, u, respectivement. Des conseils comment faire cela en utilisant le script batch Windows ou Powershell?Powershell ou Batch: recherche et remplacement de caractères
3
A
Répondre
11
Cela devrait prendre soin de lui, en utilisant Powershell. Cela peut être fait avec cmd.exe
trucs et quelques exécutables Windows intégrés, mais ce serait beaucoup plus laid et plus difficile à comprendre.
Il va lire dans certains fichiers, et sur chaque ligne:
- remplacer
[
aveca
- remplacer
]
aveco
- remplacer
|
avecu
Les échappements sont nécessaires depuis [
, ]
, et |
sont tous des caractères spéciaux dans powershell, et le retour arrière `
est utilisé pour les commandes de retour à la ligne. Si vous souhaitez traiter une liste de fichiers, vous pouvez configurer un tableau pour ce faire et parcourir le tableau.
$filenames = @("/path/to/File1.txt", "file2.txt", "file3.txt")
foreach ($file in $filenames) {
$outfile = "$file" + ".out"
Get-Content $file | Foreach-object {
$_ -replace '\[', 'a' `
-replace '\]', 'o' `
-replace '\|', 'u'
} | Set-Content $outfile
}
Ok, merci beaucoup! – jjoras
Vous ne devriez vraiment pas utiliser le() autour du Get-Content à moins que vous ayez absolument besoin d'éditer le fichier en place - toutes les lignes seront collectées avant le remplacement, ce qui sera très cher avec les gros fichiers – Jaykul
@Jaykul, merci, je vais mettre à jour mon message. – birryree