Используя PowerShell, как удалить строку из текстового файла по номеру строки? - PullRequest
1 голос
/ 19 октября 2010

В PowerShell, скажем, я хочу удалить строку 5 из текстового файла из 10 строк, используя номер строки, как это сделать?

Ответы [ 2 ]

3 голосов
/ 19 октября 2010

Не так чисто, как хотелось бы, но делает трюк:

$content = Get-Content foo.txt
$content | Foreach {$n=1}{if ($n++ -ne 5) {$_}} > foo.txt

Если у вас установлен PSCX , вы можете использовать командлет Skip-Object, чтобы сделать его немного лучше:

$content = Get-Content foo.txt
$content | Skip -Index 4 > foo.txt

Обратите внимание, что параметр -Index равен 0, поэтому я использовал 4 вместо 5.

1 голос
/ 10 января 2014

Вот как я это делаю:

(cat SomeFile.txt) -replace (cat SomeFile.txt)[4],"" | sc SomeFile.txt -Force

Или в несколько более читаемой форме:

$LineNumber = 5
$Contents = Get-Content Somefile.txt
$Contents -replace $Contents[$LineNumber -1],"" | Set-Content Somefile.txt

Хотя я согласен с Китом. Skip-Object может быть очень полезен, если у вас установлен модуль PSCX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...