我有十个文本文件(制表符分隔,200K行)。我的目的是寻找人物[,],|并分别用a,o,u替换它们。有关如何使用Windows批处理脚本或Powershell执行此操作的任何提示?
答案 0 :(得分:12)
这应该使用Powershell来处理它。这可以通过直接cmd.exe
内容和一些内置的Windows可执行文件来完成,但它会更加难以理解。
它将读入某个文件,并在每行:
[
替换为a
]
替换为o
|
替换为u
需要转义,因为[
,]
和|
都是powershell中的特殊字符,反引号`
用于自动换行命令。< / p>
$filename="textfile.txt"
$outputfile="$filename" + ".out"
Get-Content $filename | Foreach-object {
$_ -replace '\[', 'a' `
-replace '\]', 'o' `
-replace '\|', 'u'
} | Set-Content $outputfile
如果要处理文件列表,可以设置一个数组来执行此操作,然后运行该数组。
$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
}