Удалите верхнюю строку текстового файла с PowerShell

Я пытаюсь просто удалить первую строку приблизительно 5 000 текстовых файлов прежде, чем импортировать их.

Я все еще очень плохо знаком с PowerShell, таким образом, не уверенным, что искать или как приблизиться к этому. Мое текущее понятие с помощью псевдокода:

set-content file (get-content unless line contains amount)

Однако я, может казаться, не выясняю, как сделать что-то, любят, содержит.

47
задан Peter Mortensen 29 May 2017 в 20:37
поделиться

3 ответа

Это не самый эффективный в мире, но это должно работать:

get-content $file |
    select -Skip 1 |
    set-content "$file-temp"
move "$file-temp" $file -Force
36
ответ дан 26 November 2019 в 19:33
поделиться

Использование изменяемой записи, вы можете сделать это без временного файла:

${C:\file.txt} = ${C:\file.txt} | select -skip 1

function Remove-Topline ( [string[]]$path, [int]$skip=1 ) {
  if ( -not (Test-Path $path -PathType Leaf) ) {
    throw "invalid filename"
  }

  ls $path |
    % { iex "`${$($_.fullname)} = `${$($_.fullname)} | select -skip $skip" }
}
10
ответ дан 26 November 2019 в 19:33
поделиться

skip` не сработало, поэтому мой способ обхода:

$LinesCount = $(get-content $file).Count
get-content $file |
    select -Last $($LinesCount-1) | 
    set-content "$file-temp"
move "$file-temp" $file -Force
1
ответ дан 26 November 2019 в 19:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: