Powershell或Batch:查找和替换字符

jjo*_*ras 3 powershell replace batch-file

我有十个文本文件(制表符分隔,200K行).我的目的是寻找人物[,],| 并分别用a,o,u替换它们.有关如何使用Windows批处理脚本或Powershell执行此操作的任何提示?

wkl*_*wkl 12

这应该使用Powershell来处理它.这可以通过直接的cmd.exe东西和一些内置的Windows可执行文件来完成,但它会更加难以理解并且更难以理解.

它将读入一些文件,并在每一行:

  • 替换[a
  • 替换]o
  • 替换|u

因为[,所有转义都是必需的],并且|都是powershell中的特殊字符,并且反引号`用于自动换行命令.

$filename="textfile.txt"
$outputfile="$filename" + ".out"

Get-Content $filename | Foreach-object {
    $_ -replace '\[', 'a' `
       -replace '\]', 'o' `
       -replace '\|', 'u'
} | Set-Content $outputfile
Run Code Online (Sandbox Code Playgroud)

如果要处理文件列表,可以设置一个数组来执行此操作,然后运行该数组.

$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
}
Run Code Online (Sandbox Code Playgroud)