如何用powershell编辑文件的第一行或第二行?

如何用powershell编辑文件的第一行或第二行?

现在我使用 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

如果内容足够独特,则替换应用于所有行(但只会匹配您感兴趣的行)。

否则将整个文件加载到集合中,并更新第二个元素(索引一)。

如果文件足够大,以至于一次将整个文件加载到内存中是一个问题,那么就需要一些更聪明的方法......

相关内容