Назад | Перейти на главную страницу

Как отредактировать первую / или вторую строку файла с помощью PowerShell?

Теперь я использую get-content для получения содержимого файла, мне нужно отредактировать некоторые строки. Например, измените вторую строку:

перед:

line2: hello Everyone!

после:

line2: Hello Mr. Brown!

Какой командлет я могу использовать?

$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+.

Если контент достаточно уникален, замена применяется ко всем строкам (но будет соответствовать только той, которая вас интересует).

В противном случае загрузите весь файл в коллекцию и обновите второй элемент (индексный).

Если файл достаточно велик, чтобы сразу загрузить в память весь файл, тогда потребуется что-то более умное….