Удалить первые и последние строки
Обрезает 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 на каждый месяц и счёт, разложенные по папкам. В начале каждого файла четыре строки с реквизитами и периодом, в конце — строка с итоговым оборотом. Нужно загрузить данные в таблицу одним куском.
Открыл вкладку «Много файлов» и перетащил в окно папку с выписками.
Указал N = 4 и M = 1 и проверил в предпросмотре первого файла, что уходят реквизиты и строка итога, а строка с названиями столбцов остаётся первой.
Выбрал для слишком коротких файлов вариант «не класть в архив», чтобы пустые выписки не попали в результат.
Нажал «Обработать» и скачал архив с той же структурой папок. Кодировка 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.txt | Set-Content по умолчанию пишет UTF-8 без BOM |
| Windows PowerShell 5.1 | Get-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 |
| macOS | tail -n +4 in.txt, затем ghead -n -2 из GNU coreutils | Встроенный head не принимает отрицательное число |
Если строк не больше, чем удаляется
| Вариант | Что будет с файлом | Когда подходит |
|---|---|---|
| Очистить файл | Файл в архиве пустой (метка BOM сохраняется, если была) | Нужен полный набор файлов, а содержимое коротких не нужно |
| Оставить как есть | Файл попадает в архив без изменений | Короткие файлы могут быть особым случаем, который проверяется вручную |
| Не класть в архив | Файла в архиве нет, он отмечен в отчёте | Короткие файлы — мусор |
Файлы не покидают браузер
Чтение, обрезка строк и сборка архива выполняются на вашем устройстве. Файлы не отправляются на сервер, а исходные файлы на диске не меняются: вы получаете копии.
Архив ZIP ограничен 65 535 файлами и размером меньше 4 ГиБ. Если выбрано больше, инструмент попросит разбить работу на части. При суммарном объёме больше 1 ГБ появится предупреждение: обработка займёт память браузера.
Как удалить первые и последние строки: пошагово
Укажите, сколько строк удалить
В поле «Удалить первых строк» введите N, в поле «Удалить последних строк» — M. Чтобы удалить строки только с одной стороны, оставьте во втором поле ноль.
Вставьте текст или загрузите файл
На вкладке «Текст» вставьте текст в поле или нажмите «Загрузить файл». Удаляемые строки сразу подсветятся красным.
Для многих файлов выберите папку
На вкладке «Много файлов» нажмите «Выбрать файлы» или «Выбрать папку» либо перетащите их в окно. Служебные файлы систем отбрасываются автоматически.
Проверьте предпросмотр и настройки
Посмотрите, что уйдёт сверху и снизу в первом файле. При необходимости включите удаление пустых строк по краям и выберите, что делать с файлами, в которых строк слишком мало.
Запустите обработку
Нажмите «Обработать». Прогресс виден по ходу работы, её можно отменить. После завершения появится отчёт: сколько файлов обрезано, сколько оставлено без изменений и почему.
Скачайте результат
Скопируйте текст или скачайте .txt. Для нескольких файлов скачайте архив ZIP со всеми подпапками, для одного файла — сам файл.
Примеры: что получится
Отчёт с шапкой и подписью
Текст из шести строк: «Отчёт за март», «Дата;Сумма», две строки с данными, пустая строка, «Итого». При N = 1 и M = 2 остаются «Дата;Сумма» и две строки с данными.
Папка CSV без заголовков
В папке файлы продаж по дням, у каждого первая строка — названия столбцов. При N = 1 и M = 0 архив содержит те же файлы в тех же подпапках, но без строки заголовка.
Короткий файл
В файле две строки, а удаляется одна первая и две последние. В зависимости от выбора файл станет пустым, останется как был или не попадёт в архив.
Пустые строки после обрезки
После удаления шапки в начале текста остались две пустые строки. С опцией «Убрать пустые строки, оставшиеся по краям» результат начинается сразу с первой строки с текстом.
Файл Windows в кодировке Windows-1251
Выгрузка из старой программы с окончаниями CRLF. После удаления первой строки файл остаётся в Windows-1251 с теми же CRLF: кириллица в нём открывается так же, как в исходнике.
Вопросы об удалении первых и последних строк
Как удалить первую строку из текста?
Можно ли удалить сразу первые и последние строки?
Как удалить первую строку из всех файлов в папке?
Загружаются ли мои файлы на сервер?
Можно ли загрузить архив ZIP с файлами?
Изменится ли кодировка файла?
Сохранятся ли окончания строк CRLF?
Считаются ли пустые строки?
Что будет, если в файле меньше строк, чем нужно удалить?
Считается ли строкой последняя строка без перевода строки?
Что происходит с картинками и другими не текстовыми файлами в папке?
Можно ли удалить строки, в которых есть определённое слово?
Почему head -n -2 не работает на Mac?
Как удалить первые строки в PowerShell?
Другие инструменты для работы со строками
Если нужно не отрезать края, а почистить или разобрать текст иначе, пригодятся эти инструменты.
Комментарии
Этот инструмент ещё ждёт первого комментария
Без почты и пароля · публикуем после проверки, обычно за 1–2 дня
Комментарии — мнения посетителей, прошедшие проверку по правилам сайта.