2010-11-08 17 views

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 [ avec a
  • remplacer ] avec o
  • remplacer | avec u

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 
} 
+0

Ok, merci beaucoup! – jjoras

+1

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

+0

@Jaykul, merci, je vais mettre à jour mon message. – birryree