Удалить первую строку текстового файла - PullRequest
16 голосов
/ 02 марта 2009

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

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

Ответы [ 6 ]

27 голосов
/ 02 марта 2009

Windows / командная строка:

more +1 filename.ext > otherfilename.ext

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

7 голосов
/ 02 марта 2009

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

sed -i~ 1d target-file
6 голосов
/ 02 марта 2009

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

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

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

5 голосов
/ 02 марта 2009

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

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

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

4 голосов
/ 08 июля 2015

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

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

findstr /V /R "^$" InputFile.txt > OutputFileNameWithFirstLineRemoved.txt
1 голос
/ 07 сентября 2014

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

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

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

...