- Изучаем команды linux: split
- 1. Введение
- 2. Часто используемые опции
- 3. Разрезание файла на части заданного размера
- 4. Разрезание файла на заданное количество частей
- 5. Использование числовых суффиксов
- 6. Восстановление исходного файла
- 7. Разрезание архивов tar на лету
- 8. Заключение
- Кратко: split — разделяем файлы
- Как разделить большой архив на несколько файлов по 15gb?
- А как сделать тоже самое, только с нормальным именем?
- Как заменить эти aa ab на цифры?
- Что еще можно сделать с суффиксом?
- Как разделить архив на два файла?
- А как теперь собрать все части в один архив?
- Как понять, что делает эта утилита?
- Как split работает с текстовыми файлами?
- Как мне разделить файл на несколько файлов по 3000 строк?
- Как разделить текстовый файл по 300кб не ломая структуру?
- Как разделить файл на основе определенного контента?
- Справочная информация
- понедельник, 6 июня 2016 г.
- Разрезать и склеить файл в Linux без терминала. Split и Join с GUI
- 1 вариант – Gmone Split
- 2 вариант – HJSplit
Изучаем команды linux: split
1. Введение
Если вы не слышали о команде split, вы многое потеряли. Как можно понять из ее названия, эта команда может помочь вам разделить файл на несколько меньших файлов. split работает с любыми файлами, как текстовыми, так и бинарными. Это очень полезно, если ваш файл не помещается на флешку, или вам нужно отправить большой файл по электронной почте. Вы также можете разделять большие текстовые файлы, такие как логи, на несколько частей заданного размера. В данной статье описан синтакис и применение команды split.
2. Часто используемые опции
-b, —bytes=SIZE
Эта опция задает размер выводимых файлов.
-d, —numeric-suffixes
использовать цифровые суффиксы вместо алфавитных
-n, —number=CHUNKS
задает количество выводимых файлов
3. Разрезание файла на части заданного размера
Если не используется опция suffix, по умолчанию команда split будет разделять файлы на части, название которых будет начинаться с x, за которым будут следовать еще два символа в алфавитном порядке. Например, первый файл будет называться xaa, за которым будет идти xab, xac, а последний файл будет называться xzz. Это значит, что в данном случае вы можете разбить свой файл не более чем на 676 частей (26×26). Возьмем для примера файл размером 10 Мб:
Теперь мы можем разбить этот файл на части размером 1 Мб с помощью опции -b:
4. Разрезание файла на заданное количество частей
Также может возникнуть ситуация, когда нам нужно разбить файл на определенное количество частей. В приведенном ниже примере мы разрезаем наш файл размером 10 Мб на максимум три части с помощью опции -n:
5. Использование числовых суффиксов
Команда split позволяет создавать файлы с числовыми суффиксами вместо символьных. Приведенная ниже команда создает файл для каждого символа в строке «linuxcareer.com». Секрет заключается в том, что мы разрезаем файл, задавая размер части в байтах, а 1 байт эквивалентен 1 символу. Также вместо символьных мы используем числовые суффиксы:
6. Восстановление исходного файла
Разрезать файл легко, но как собрать его обратно? Допустим, у нас есть какой-либо ISO-образ, и мы хотим разделить его пополам.
Теперь мы разрезаем образ пополам с помощью опции -n:
Мы можем восстановить исходный файл ubuntu-12.04.1-server-amd64.iso, используя команду cat и оператор перенаправления STDOUT:
Чтобы убедиться, что файл restored-ubuntu-12.04.1-server-amd64.iso восстановлен корректно и представляет собой точную копию оригинального файла ubuntu-12.04.1-server-amd64.iso, мы используем команду md5sum для создания контрольной суммы обоих файлов:
Как вы можете видеть, восстановленный файл является точной копией исходного, так как их контрольные суммы совпадают.
7. Разрезание архивов tar на лету
Теперь, когда мы ознакомились с основами, рассмотрим более сложный пример.
В приведенном ниже примере мы архивируем директорию /tmp/Software. Однако вместо создания архива мы разрежем его на лету с помощью команды split.
Как вы можете видеть, наш архив диретории /tmp/Software разрезан на части с максимальным размером 2 Мб. Далее мы восстановим исходную директорию:
8. Заключение
Как вы можете видеть, при использовании операционной системы GNU/Linux вы ограничены только своим воображением и навыками, а не размером вашего кошелька. В данной статье описаны только основы работы с командой split. Узнать больше вы можете с помощью команды:
Источник
Кратко: split — разделяем файлы
Давненько я тут не писал, хотя заметок накопилось немало.. и начну я пока с кратких заметок. Сегодня речь пойдет об утилите split. Данная утилита позволяет разбивать файлы на несколько частей.
Когда это может быть полезным? Ну к примеру вам может потребоваться разделить большой лог-файл для того, чтобы было удобнее анализировать его на наличие ошибок. Второй вариант — разделить большой архив (что мне и потребовалось) для того, чтобы загрузить его частями на облако, в котором есть ограничения по размеру файлов…
Ниже будет представлено несколько вариантов использования этой утилиты, и начну я с самого распространенного.
Как разделить большой архив на несколько файлов по 15gb?
Самый простой способ:
В результате вы получите файлы, начинающиеся с префикса «x»:
А как сделать тоже самое, только с нормальным именем?
В этой ситуации достаточно добавить желаемую маску, указав ее в кавычках после выбранного файла:
В результате архив будет разделен на эти файлы:
Как заменить эти aa ab на цифры?
Вместо «буквенного» суффикса есть и «цифровой». Чтобы им воспользоваться достаточно использовать ключ -d:
Результат будет такой:
Что еще можно сделать с суффиксом?
Можно увеличить его длину (по умолчанию длина суффикса — 2). Сделать это можно, например до 4, с помощью ключа «-a 4»:
Еще можно использовать шестнадцатеричный суффикс, воспользовавшись ключом «-x». Но на нем я не буду останавливаться.
Как разделить архив на два файла?
Тут нам поможет ключ -n:
В результате мы получим два файла, разделенные «пополам» как и хотели:
А как теперь собрать все части в один архив?
Это нельзя сделать с помощью split, но можно с помощью cat. Ниже пример того, как я собрал все части в один архив и сверил размер и чексум оригинального файла и «воссозданного»:
Как мы видим, архив «воссоздан» и готов к распаковке.
Как понять, что делает эта утилита?
На помощь приходит ключ —verbose:
Как split работает с текстовыми файлами?
По умолчанию эта утилита делит файл создавая новый файл, который содержит 1000 строк. К примеру, у меня есть файл который содержит 11266 строк. Вот на сколько файлов/и как он будет разделен:
Как мне разделить файл на несколько файлов по 3000 строк?
Тут нам поможет ключ -l 3000:
Как разделить текстовый файл по 300кб не ломая структуру?
При разделении текстового файла по размеру, используя ключ -b файлы делятся на части не сохраняя структуру, из-за чего начало строки может быть в одном файле, а ее конец — в другом. Решить эту проблему можно указав ключ «-C 300KB» (указываем максимальный размер), который разделит файл на части сохраняя структуру.
Как разделить файл на основе определенного контента?
В этом утилита split нам не поможет, но поможет csplit. Возможно о ней будет написана отдельная статья.
Источник
Справочная информация
про свой опыт решения некоторых проблем и использования ряда возможностей ОС и приложений
понедельник, 6 июня 2016 г.
Разрезать и склеить файл в Linux без терминала. Split и Join с GUI
Необходимость в использовании инструментов разрезания и склейки файлов в Linux у меня ранее не возникало. Для передачи больших файлов с целью обмена мной успешно использовались файлообменные ресурсы, например, те же depositfiles или filefactory, предоставляющие время хранения не менее 90 суток. В связи с тем, что depositfiles предоставил свой менеджер файлов, с помощью которого успешно осуществлялась операция Upload, этот ресурс и использовался чаще всего.
Радикальным образом ситуация изменилась буквально за последние 2 дня. Загруженный мной для обмена файл был в течение дня удалён. Так как администрация этого сервиса вправе удалить любой файл без объяснения причин, то пришлось вернуться к широко использовавшемуся мной ранее файлообменнику Sendspace. А так как этот ресурс позволяет передать файлы не более 300 Мб, то у меня возникла проблема передачи файлов размером в 1,5 Гб.
Другой возможной необходимостью разбить и склеить файл является принципиальная невозможность записать на флэшку с файловой системой FAT32 файл размером более 4 Гб, что обусловлено свойствами самой файловой системы FAT32.
Поиск способов в Linux привёл в инструкции:
Разбить на кусочки по 10 Гб, можно такой командой:
split -b 10G big_file.ext
при этом имена файлов будут типа: xaa, xab, xac..
Далее копируем их к себе
Склеиваем в Linux:
cat xaa xab xac > big_file.ext
Склеиваем в Windows:
copy /B xaa+xab+xac big_file.ext
При всём уважении к терминалу хотелось бы чего-то более привычного, тем более, что мои респонденты, несмотря на их работу в Linux, вряд ли были бы в восторге от необходимости склеивать переданные им файлы в терминале.
Поискав в центре приложений своего Linux Mint по запросу в строке поиска split было найдено 2 варианта решения проблемы.
1 вариант – Gmone Split
Так как в Linux Mint ПО унифицировано для различных оболочек, то данное ПО присутствует и для Cinnamon, и для MATE и XFCE. Естественно, что данное ПО должно быть установлено как у Вас, так и тех, кому Вы будете передавать обработанные этим ПО файлы. После установки в меню программ появляется отображение, например,
При запуске программы отображается мастер (другими словами – Wizard), который будет «руководить» Вашими дальнейшими действиями.
Split a file – разрезать файл
Merge several files – склеить несколько файлов
Слева отображается полное меню, в котором выполняемая операция подсвечивается выделением:
В нижней части справа отображены кнопки дальнейших действий.
Если действие указано, то кнопка «Продолжить» становится активной. Если нажать «Отмена», то доступно главное окно программы, до этого «прикрытое» мастером.
В окне выбора файлов укажите файл, а затем способ его разбиения:
По умолчанию предлагается указать, на сколько частей разбивать выбранный файл. При этом размер каждого фрагмента будет определён программой самостоятельно. Но если нажать на стрелочку справа, то отобразятся и другие варианты:
В поле слева необходимо указать количество этих самых частей или размер в байтах, Кб, Мб, Гб и т.д.
Далее предлагается выбрать рабочий алгоритм:
Признаться откровенно, мной был испробован вариант только «Общий». Про назначение других вариантов ничего не могу сказать.
Перед самим процессом предлагается проверить выбранные настройки и при необходимости внести изменения, если где-то была допущена ошибка (размер отдельного фрагмента или способа разбиения):
Процесс разбиения файла отображается в графическом режиме:
На выходе Вы получите необходимое количество фрагментов файла с расширениями .001, .002, .003 .
Процесс склейки производится аналогично. Выбрать операцию «Merge several files» и указать файл с расширением .001
На выходе получится склеенный файл.
2 вариант – HJSplit
Этот вариант найден со ссылки от консольной утилиты LXSplit, в описании которой указано на её совместимость с программной HJSplit
Само собой разумеется, что Ваши респонденты также должны установить у себя такую же программу.
Пользователи Linux обращаются к секции Линукса и скачивают архив hjsplitlx.tar.gz В составе архива имеется сама программа и описание в виде файла txt «что это такое и с чем его едят».
Собственно программой является файл hjsplit. Проверьте, имеется ли у Вас указание на необходимость запуска этого файла как программы:
Интерфейс интуитивно понятен. Split – разрезать, Join – склеить. Сравнением (Compare) и контрольными суммами (Checksum) Вы вряд ли будете заниматься.
Нажимаете «Split», указываете файл, размер каждого фрагмента и нажимаете кнопку «Start».
Процесс отображается графическим индикатором, а по завершении выводится информационное сообщение.
Процесс склейки производится аналогично. Запускается программа, выбирается «Join», указывается файл с расширением .001 и нажимается кнопка «Start».
Источник