Это выведет файл после регулярного выражения.Выходной файл не начинается с спецификации.Это должно работать для небольших файлов.Для больших файлов могут потребоваться быстрые изменения.
$fin = 'C:/src/t/revbom-in.txt'
$fout = 'C:/src/t/revbom-out.txt'
if (Test-Path -Path $fout) { Remove-Item -Path $fout }
# Create a file for input
$UCS2LENoBomEncoding = New-Object System.Text.UnicodeEncoding $False, $False
[System.IO.File]::WriteAllLines($fin, "now is the time`r`nwhen was the time", $UCS2LENoBomEncoding)
# Read the file in, replace string, write file out
[System.IO.File]::ReadLines($fin, $UCS2LENoBomEncoding) |
ForEach-Object {
[System.IO.File]::AppendAllLines($fout, [string[]]($_ -replace 'the','a'), $UCS2LENoBomEncoding)
}
HT: @refactorsaurusrex на https://gist.github.com/refactorsaurusrex/9aa6b72f3519dbc71f7d0497df00eeb1 для приведения [string []]
Примечание: mklement0 наhttps://gist.github.com/mklement0/acb868a9f15d9a34b6e88fc874b3851d
Примечание: если исходный файл HTML, см. https://stackoverflow.com/a/1732454/447901