Удалить первую строку текстового файла
Мне нужен 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
в том, что символы табуляции будут сохранены. Однако в больших файлах этот метод намного медленнее, чем другие. Также - ведущие пробелы будут обрезаны слева, что может быть или не быть проблемой.