3
我有十個文本文件(製表符分隔,200K行)。我的意圖是尋找字符[,],|並分別用a,o,u代替它們。任何提示如何使用Windows批處理腳本或Powershell來做到這一點?Powershell或批處理:查找並替換字符
我有十個文本文件(製表符分隔,200K行)。我的意圖是尋找字符[,],|並分別用a,o,u代替它們。任何提示如何使用Windows批處理腳本或Powershell來做到這一點?Powershell或批處理:查找並替換字符
這應該照顧它,使用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
如果你要處理的文件列表,你可以建立一個數組來做到這一點,並通過陣列上運行。
$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
}
好的,非常感謝! – jjoras 2010-11-08 19:19:14
你真的不應該在Get-Content中使用(),除非你必須完全編輯這個文件 - 它會在更換之前收集所有的行,這對於大文件來說非常昂貴 – Jaykul 2010-11-09 17:23:55
@Jaykul,謝謝,我會更新我的帖子。 – birryree 2010-11-09 17:41:32