Удалить первую строку текстового файла

Мне нужен cmd script, который удаляет первую строку в текстовом файле. Сценарий следующий: каждый день я беру txt файл из FTP, проблема в том, что он содержит пустую строку вверху, а затем заголовки файла. Поскольку я импортирую этот файл автоматически в таблицу доступа, эта пустая строка вызывает у меня проблемы.

Итак, мне нужен script, который удаляет пустую строку и сохраняет файл.

Ответы

Ответ 1

Windows/command prompt:

more +1 filename.ext > otherfilename.ext

Кажется, что все работает нормально, однако кажется, что это также преобразует символы табуляции в несколько пробелов. Мне нужно было удалить первую строку файла с разделителями табуляции перед импортом в postgres. Это не удалось из-за автоматического преобразования вкладок в пробелы больше...

Ответ 2

Вы не указали платформу. Здесь, как это сделать в любой среде * NIX (и Windows + Cygwin):

sed -i~ 1d target-file

Ответ 3

В окнах без дополнительных инструментов:

findstr /V /R "^$" filename.whatever

Никаких дополнительных инструментов не требуется

Ответ 4

Чтобы удалить первую строку, я бы использовал

tail -n +2 source-file > target-file

Если вы хотите это в Windows, загрузите gnu utils, чтобы получить команду хвоста. +2 означает "Начать во второй строке".

Ответ 5

Я заметил некоторые комментарии, касающиеся использования решения Preet Sangha. Поскольку у меня недостаточно комментариев, чтобы добавить комментарий, я хотел бы разместить здесь более полное решение.

Вы можете использовать решение Preet Sangha следующим образом. Этот script создаст новый текстовый файл без первой строки входного файла.

findstr /V /R "^$" InputFile.txt > OutputFileNameWithFirstLineRemoved.txt

Ответ 6

Мне нужно было сделать что-то подобное сегодня, и это было то, что я придумал:

FOR /F "tokens=* skip=1" %A IN ('type "input_file.ext"') DO @echo %A>>"output_file.ext"

Это имеет преимущество перед решением more +1 в том, что символы табуляции будут сохранены. Однако в больших файлах этот метод намного медленнее, чем другие. Также - ведущие пробелы будут обрезаны слева, что может быть или не быть проблемой.