现在我使用 get-content 获取文件的内容,我需要编辑一些行。例如,更改第二行:
前:
line2: hello Everyone!
后:
line2: Hello Mr. Brown!
我可以使用哪个 cmdlet?
答案1
$file = Get-Content myfile.txt
$file | ForEach-Object {
if ($_.ReadCount -eq 2) {
$_ -replace '\w+','Hello Mr. Brown!'
} else {
$_
}
} |
Set-Content myfile.txt
这会将第二行(通过 指定ReadCount -eq
)更改为Hello Mr. Brown!
。请确保使用 PowerShell 2.0+。
答案2
如果内容足够独特,则替换应用于所有行(但只会匹配您感兴趣的行)。
否则将整个文件加载到集合中,并更新第二个元素(索引一)。
如果文件足够大,以至于一次将整个文件加载到内存中是一个问题,那么就需要一些更聪明的方法......