Перейти к содержимому
✂️

Удалить первые и последние строки

Обрезает N строк в начале и M в конце текста или сразу у тысяч файлов с выгрузкой в ZIP

Инструмент справился с вашей задачей?

Одно нажатие, без регистрации. По ответам мы решаем, какие инструменты дорабатывать первыми.

Ваш ответ здесь будет первым.

Этот инструмент ещё ждёт первого комментария

Нашли приём, остался вопрос или чего-то не хватило — напишите, пригодится следующим. Без почты и пароля · публикуем после проверки, обычно за 1–2 дня

Как удалить первые и последние строки из текста

Инструмент убирает заданное число строк в начале и в конце текста. Укажите, сколько первых строк удалить (N) и сколько последних (M), и получите текст без них. Середина остаётся нетронутой: ни один символ внутри сохранённых строк не меняется, переводы строк и пробелы остаются на своих местах.

Вставьте текст в поле или загрузите файл. Удалённые строки подсвечиваются в предпросмотре: те, что уйдут сверху и снизу, показаны красным и зачёркнуты, поэтому до копирования видно, не задели ли вы нужное. Результат можно скопировать или скачать файлом .txt.

Можно удалить только первые строки (M = 0), только последние (N = 0) или и те и другие сразу. Это одно действие вместо двух: не нужно сначала отрезать шапку, а потом отдельно искать и стирать подпись в конце.

Удалить строки из нескольких файлов сразу: папка, перетаскивание, архив ZIP

На вкладке «Много файлов» можно выбрать сразу несколько файлов, целую папку или перетащить файлы и папки в окно. Инструмент покажет, сколько файлов найдено и какой у них общий объём, и сразу отбросит служебный мусор операционных систем: .DS_Store, Thumbs.db, desktop.ini, папку __MACOSX и файлы, начинающиеся с «._».

Перед запуском виден предпросмотр первого файла: какие строки уйдут сверху и какие снизу. Затем кнопка «Обработать» проходит все файлы по очереди, показывает прогресс и позволяет отменить работу на середине.

Результат скачивается одним архивом ZIP, в котором сохранена структура подпапок и исходные имена файлов, в том числе кириллические. Если в архиве оказываются два пути, различающиеся только регистром букв, второй получает приписку вида «(2)», чтобы файлы не затёрли друг друга при распаковке. Если на входе был один файл, архив не создаётся: скачивается сам файл.

Вся обработка идёт в вашем браузере. Файлы никуда не отправляются и не загружаются на сервер, поэтому так можно обрабатывать выгрузки, которые нельзя передавать третьим лицам.

Что считается строкой: пустые строки, CRLF, последняя строка без перевода

Строка заканчивается символом перевода строки LF. Файлы Windows с окончаниями CRLF обрабатываются так же: символ CR остаётся частью своей строки, поэтому окончания в сохранённой части файла не меняются. Если во всём файле нет ни одного LF, но есть CR (так хранили текст старые программы для Mac), разделителем считается CR.

Последняя строка без перевода в конце тоже считается строкой. Пустая строка и строка из одних пробелов — полноценные строки и учитываются при подсчёте. У совсем пустого файла строк ноль.

Если после обрезки по краям остались пустые строки или строки из одних пробелов и табуляций, их можно убрать опцией «Убрать пустые строки, оставшиеся по краям». Пустые строки в середине текста она не трогает, а последняя оставшаяся строка сохраняет свой перевод строки.

Такой подсчёт совпадает с поведением утилит GNU tail и head: результат для N первых и M последних строк тот же, что у команды tail -n +(N+1) с последующей head -n -M. Сознательных отличий два: метка BOM в начале файла сохраняется (подробнее ниже), а файл, где переводы строк записаны только символом CR, делится на строки по CR — утилиты GNU считают такой файл одной строкой.

Кодировки UTF-8, UTF-8 с BOM, Windows-1251 и UTF-16 сохраняются

При пакетной обработке файл не перекодируется. Инструмент определяет, как устроен файл, и вырезает строки прямо из его байтов. Файлы в UTF-8 и в однобайтовых кодировках вроде Windows-1251 остаются в своей кодировке: сохранённые строки выходят байт в байт такими же, как были.

Метка порядка байтов (BOM) в начале файла остаётся на месте, даже если удалена первая строка. Иначе файл, у которого была метка, после обработки мог бы открыться в другой кодировке. У GNU tail здесь поведение другое: метка считается частью первой строки и уходит вместе с ней.

Файлы в UTF-16 (с меткой BOM или без неё, если кодировку удаётся уверенно распознать по содержимому) тоже обрабатываются в своей кодировке: перевод строки ищется по двухбайтовым символам, а не по отдельным байтам, поэтому кириллица и другие символы не рвутся пополам.

Файлы в UTF-32 и двоичные файлы (картинки, архивы, документы Word) не обрабатываются: они остаются без изменений, а в итоговом отчёте отмечены отдельно.

Что будет, если строк в файле меньше, чем нужно удалить

Когда N + M не меньше числа строк в файле, удалять по сути нечего оставить. Для таких файлов на вкладке «Много файлов» есть выбор из трёх вариантов: очистить файл (останется пустой файл, а при наличии BOM — только метка), оставить файл как есть или не класть его в архив вовсе.

Какой вариант выбрать, зависит от задачи. Если дальше файлы загружаются в программу, которая ждёт полный набор имён, подойдёт «оставить как есть» или «очистить». Если пустые и короткие файлы — мусор, выбирайте «не класть в архив». Все такие файлы видны в итоговом отчёте.

В текстовом поле вариант один: если строк не больше, чем удаляется, результат будет пустым.

Удалить заголовок из CSV-файлов, шапку и подпись из выгрузок, служебные строки из логов

Заголовок CSV. Чтобы склеить несколько CSV с одинаковыми столбцами в один, у всех файлов, кроме первого, нужно убрать строку с названиями столбцов. Удалите одну первую строку у всех файлов из папки, а первый файл возьмите исходным.

Шапка и подпись в выгрузках. Отчёты из учётных программ и банков часто начинаются со строк вроде названия организации и периода, а заканчиваются строками «Итого» или подписью. Если число таких строк одинаково во всех файлах, их можно отрезать сразу у всей папки.

Служебные строки в логах и дампах. Некоторые программы пишут в начало файла строки с версией и параметрами запуска, а в конец — строку о завершении. Удалив их, проще сравнивать и склеивать файлы.

Помните, что CSV-строка, в которой значение в кавычках содержит перевод строки, для инструмента — это несколько строк. Если такие значения стоят в заголовке или в последних записях, проверьте результат в предпросмотре.

Как удалить первую строку из файла в командной строке: PowerShell, sed, head и tail

Тем, кто работает в командной строке, инструмент не обязателен. Ниже команды, сверенные с документацией, и их подводные камни.

PowerShell 7.4 и новее: Get-Content in.txt | Select-Object -Skip 3 -SkipLast 2 | Set-Content out.txt. Параметр -Skip пропускает строки с начала, -SkipLast — с конца. Совмещать -Skip и -SkipLast в одном вызове документация Microsoft разрешает начиная с PowerShell 7.4.

Windows PowerShell 5.1: параметр -SkipLast там есть, но в одном вызове с -Skip его не использовать, поэтому нужны два шага: Get-Content in.txt | Select-Object -Skip 3 | Select-Object -SkipLast 2 | Set-Content out.txt.

Внимание, кодировка: Get-Content читает строки как текст, а Set-Content записывает их заново в своей кодировке. В Windows PowerShell 5.1 по умолчанию это системная кодовая страница (обычно ANSI), в PowerShell 7 — UTF-8 без BOM. Файл в другой кодировке после такой команды может поменять кодировку, а окончания строк будут записаны заново. Указывайте -Encoding явно и пишите результат в другой файл, а не в исходный.

Linux (GNU coreutils): tail -n +4 in.txt | head -n -2 > out.txt удаляет 3 первые и 2 последние строки. У tail запись -n +4 означает «начать с 4-й строки», то есть пропустить три; у head запись -n -2 означает «всё, кроме двух последних строк». Удалить только первые три строки можно и так: sed '1,3d' in.txt > out.txt, только последнюю: sed '$d' in.txt > out.txt.

macOS: встроенный head взят из BSD и отрицательное число не понимает — команда head -n -2 завершается ошибкой «illegal line count». Команда tail -n +4 работает. Для удаления последних строк можно установить GNU coreutils (в Homebrew пакет coreutils, команда называется ghead) или воспользоваться этим инструментом.

Для тысяч файлов эти команды приходится оборачивать в цикл и следить, чтобы результат не перезаписал исходник раньше времени. Здесь инструмент в браузере проще: выбрали папку, получили архив, исходные файлы на диске не меняются.

Граница инструмента: строки по номеру, а не по содержимому

Инструмент считает строки только с начала и с конца файла и не смотрит, что в них написано. Он не удаляет строки, содержащие слово, не убирает дубли и не обрезает символы внутри строк.

Если нужно удалить строки со словом, пустые строки или повторы, воспользуйтесь инструментом «Удаление строк» (/tools/remove-lines). Для удаления каждой второй, третьей или N-й строки подойдёт «Удалить каждую N-ю строку» (/tools/remove-nth-line).

💡

Пример из жизни: сотни банковских выписок в CSV

Бухгалтер выгрузил из интернет-банка выписки по счетам за год — отдельный CSV на каждый месяц и счёт, разложенные по папкам. В начале каждого файла четыре строки с реквизитами и периодом, в конце — строка с итоговым оборотом. Нужно загрузить данные в таблицу одним куском.

1

Открыл вкладку «Много файлов» и перетащил в окно папку с выписками.

2

Указал N = 4 и M = 1 и проверил в предпросмотре первого файла, что уходят реквизиты и строка итога, а строка с названиями столбцов остаётся первой.

3

Выбрал для слишком коротких файлов вариант «не класть в архив», чтобы пустые выписки не попали в результат.

4

Нажал «Обработать» и скачал архив с той же структурой папок. Кодировка Windows-1251, в которой банк отдаёт файлы, сохранилась, кириллица в таблице читается.

🧠

Знаете ли вы?

🧾

Окончание строки в Windows — это два символа, CR и LF, в Linux и macOS — один LF. Старые версии Mac OS до перехода на Mac OS X использовали один CR.

🔤

Метка BOM — невидимые байты в начале файла, по которым программы узнают UTF-8 или порядок байтов в UTF-16. Если отрезать её вместе с первой строкой, файл может открыться в другой кодировке.

🐧

Запись tail -n +4 означает не «4 последние строки», а «вывести, начиная с 4-й строки». Плюс перед числом полностью меняет смысл команды.

🍎

Команды head и tail на macOS взяты из BSD, а на Linux обычно из GNU coreutils. Поэтому одна и та же команда может работать на сервере и падать на ноутбуке.

Удаление первых и последних строк в разных средах

СредаПервые 3 и последние 2 строкиЧто учесть
Этот инструментN = 3, M = 2Работает в браузере, кодировка и окончания строк сохраняются, много файлов — архивом
PowerShell 7.4+Get-Content in.txt | Select-Object -Skip 3 -SkipLast 2 | Set-Content out.txtSet-Content по умолчанию пишет UTF-8 без BOM
Windows PowerShell 5.1Get-Content in.txt | Select-Object -Skip 3 | Select-Object -SkipLast 2 | Set-Content out.txt-Skip и -SkipLast в одном вызове нельзя; Set-Content по умолчанию пишет в системной кодовой странице
Linux (GNU)tail -n +4 in.txt | head -n -2 > out.txtОтрицательное число у head — расширение GNU
macOStail -n +4 in.txt, затем ghead -n -2 из GNU coreutilsВстроенный head не принимает отрицательное число

Если строк не больше, чем удаляется

ВариантЧто будет с файломКогда подходит
Очистить файлФайл в архиве пустой (метка BOM сохраняется, если была)Нужен полный набор файлов, а содержимое коротких не нужно
Оставить как естьФайл попадает в архив без измененийКороткие файлы могут быть особым случаем, который проверяется вручную
Не класть в архивФайла в архиве нет, он отмечен в отчётеКороткие файлы — мусор
ℹ️

Файлы не покидают браузер

Чтение, обрезка строк и сборка архива выполняются на вашем устройстве. Файлы не отправляются на сервер, а исходные файлы на диске не меняются: вы получаете копии.

Архив ZIP ограничен 65 535 файлами и размером меньше 4 ГиБ. Если выбрано больше, инструмент попросит разбить работу на части. При суммарном объёме больше 1 ГБ появится предупреждение: обработка займёт память браузера.

Как удалить первые и последние строки: пошагово

1

Укажите, сколько строк удалить

В поле «Удалить первых строк» введите N, в поле «Удалить последних строк» — M. Чтобы удалить строки только с одной стороны, оставьте во втором поле ноль.

2

Вставьте текст или загрузите файл

На вкладке «Текст» вставьте текст в поле или нажмите «Загрузить файл». Удаляемые строки сразу подсветятся красным.

3

Для многих файлов выберите папку

На вкладке «Много файлов» нажмите «Выбрать файлы» или «Выбрать папку» либо перетащите их в окно. Служебные файлы систем отбрасываются автоматически.

4

Проверьте предпросмотр и настройки

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

5

Запустите обработку

Нажмите «Обработать». Прогресс виден по ходу работы, её можно отменить. После завершения появится отчёт: сколько файлов обрезано, сколько оставлено без изменений и почему.

6

Скачайте результат

Скопируйте текст или скачайте .txt. Для нескольких файлов скачайте архив ZIP со всеми подпапками, для одного файла — сам файл.

Примеры: что получится

Отчёт с шапкой и подписью

Текст из шести строк: «Отчёт за март», «Дата;Сумма», две строки с данными, пустая строка, «Итого». При N = 1 и M = 2 остаются «Дата;Сумма» и две строки с данными.

Папка CSV без заголовков

В папке файлы продаж по дням, у каждого первая строка — названия столбцов. При N = 1 и M = 0 архив содержит те же файлы в тех же подпапках, но без строки заголовка.

Короткий файл

В файле две строки, а удаляется одна первая и две последние. В зависимости от выбора файл станет пустым, останется как был или не попадёт в архив.

Пустые строки после обрезки

После удаления шапки в начале текста остались две пустые строки. С опцией «Убрать пустые строки, оставшиеся по краям» результат начинается сразу с первой строки с текстом.

Файл Windows в кодировке Windows-1251

Выгрузка из старой программы с окончаниями CRLF. После удаления первой строки файл остаётся в Windows-1251 с теми же CRLF: кириллица в нём открывается так же, как в исходнике.

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

Как удалить первую строку из текста?
Укажите 1 в поле «Удалить первых строк» и 0 в поле «Удалить последних строк», затем вставьте текст. Первая строка будет подсвечена красным, результат можно скопировать или скачать.
Можно ли удалить сразу первые и последние строки?
Да. Заполните оба поля: например, N = 2 и M = 3 удалят две строки в начале и три в конце за одно действие.
Как удалить первую строку из всех файлов в папке?
Откройте вкладку «Много файлов», нажмите «Выбрать папку» или перетащите папку в окно, укажите N = 1 и нажмите «Обработать». Скачается архив ZIP с той же структурой подпапок.
Загружаются ли мои файлы на сервер?
Нет. Файлы читаются и обрабатываются в браузере, архив собирается там же. На сервер ничего не отправляется.
Можно ли загрузить архив ZIP с файлами?
Нет, архив на входе инструмент не распаковывает. Распакуйте его и выберите получившуюся папку. На выходе, наоборот, для нескольких файлов создаётся архив ZIP.
Изменится ли кодировка файла?
Нет. UTF-8, UTF-8 с BOM, Windows-1251 и UTF-16 сохраняются: строки вырезаются из байтов файла без перекодирования. Метка BOM остаётся в начале файла даже после удаления первой строки.
Сохранятся ли окончания строк CRLF?
Да. Окончания строк в оставшейся части файла не меняются: CRLF остаётся CRLF, LF остаётся LF.
Считаются ли пустые строки?
Да, пустая строка — такая же строка, как остальные. Если после обрезки по краям остались пустые строки или строки из пробелов, включите опцию «Убрать пустые строки, оставшиеся по краям».
Что будет, если в файле меньше строк, чем нужно удалить?
Для файлов можно выбрать: очистить файл, оставить его как есть или не класть в архив. В текстовом поле результат в этом случае будет пустым.
Считается ли строкой последняя строка без перевода строки?
Да. Если файл не заканчивается переводом строки, его последняя строка всё равно учитывается при подсчёте последних M строк.
Что происходит с картинками и другими не текстовыми файлами в папке?
Двоичные файлы не обрабатываются и попадают в архив без изменений. Файлы в UTF-32 тоже остаются как есть. В отчёте они отмечены отдельно.
Можно ли удалить строки, в которых есть определённое слово?
Этот инструмент удаляет строки только по положению в начале и в конце. Для удаления строк по содержимому, пустых строк и дублей есть инструмент «Удаление строк» по адресу /tools/remove-lines.
Почему head -n -2 не работает на Mac?
Встроенный в macOS head взят из BSD и не принимает отрицательное число строк. Отрицательное значение — расширение GNU coreutils. Установите GNU coreutils и используйте ghead либо обработайте файлы здесь.
Как удалить первые строки в PowerShell?
Get-Content in.txt | Select-Object -Skip 3 | Set-Content out.txt пропускает три первые строки. Учтите, что Set-Content записывает файл заново в своей кодировке, поэтому указывайте -Encoding явно.

Другие инструменты для работы со строками

Если нужно не отрезать края, а почистить или разобрать текст иначе, пригодятся эти инструменты.

Комментарии

Этот инструмент ещё ждёт первого комментария

Без почты и пароля · публикуем после проверки, обычно за 1–2 дня

  • Руслан АвдеевОт автора проекта
    Все инструменты на ToolFox бесплатны, и я их дорабатываю сам. Напишите, если инструмент считает неверно, чего-то не хватает или что-то стоит поправить, — по таким комментариям я и решаю, чем заняться дальше.

Комментарии — мнения посетителей, прошедшие проверку по правилам сайта.