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