Linux как объединить два файла

Как разрезать и соединять файлы в командной строке Linux

Оригинал: How To Split And Combine Files From Command Line In Linux
Автор: SK
Дата публикации: 2 мая 2017 года
Перевод: А. Кривошей
Дата перевода: сентябрь 2017 г.

На моем ноутбуке хранится множество обучающих видео по Linux. Я хотел бы загрузить их все на Google Drive, чтобы иметь резервные копии. Проблема в том, что эти видеоролики размером более 1 гигабайта, что плохо подходит для загрузки на диск Google. Несмотря на то, что Google Drive поддерживает загрузку файлов размером до 5 Тб, на практике для загрузки больших файлов требуется слишком много времени. Рассматривая эту проблему, я понял, что было бы намного лучше, если бы я мог разделить эти файлы на меньший размер и загружать их по одному. Затем я могу загрузить все части файла и объединить их все, когда захочу. Есть простая утилита командной строки, называемая «split», которая используется для разделения больших файлов на несколько файлов меньшего размера, и вы можете позже соединить все эти части в один файл.

В этом кратком руководстве я покажу вам, как разрезать и соединять файлы в командной строке Unix-подобных операционных систем.

Разрезание файлов в командной строке

Давайте посмотрим на размер этого видеоролика.

Как вы можете видеть, размер видео 1,1 Гб, что очень много для загрузки на мой диск google. С моей скоростью интернет-соединения это займет более 30 минут. Я не хочу ждать так долго. Поэтому я хочу разделить файл на несколько частей, например по 100 Мб, чтобы потом быстро загрузить их одну за одной.

Для этого используем команду:

Команда создаст файлы ls.aa, ls.ab, ls.ac.. и так далее, размером по 100 Мб.

Посмотрим, что теперь у нас в директории:

Файл Linux Security.mp4 разрезан на части с именами ls.aa, ls.ab …. ls.ak, каждая по 100 Мб.
Теперь намного проще отправить их в качестве вложения в электронное письмо.

Объединение файлов в командной строке

Перейдем в директорию, где лежат все части нашего файла и объединим их в один файл.

Здесь Linux_security.mp4 — имя собираемого файла. Два знака вопроса (??) означают искать в имени файла любое расширение из двух символов. Для упрощения часть имени ls. соответствует всем названиям файлов ls.aa, ls.ab . которые объединяются в один файл.
Не забудьте указать правильное расширение при объединении частей. В случае, если вы хотите отправить все файлы по почте своему другу, сообщите ему правильное расширение файлов, которые вы отправили. Он должен использовать одно и то же расширение файла в выходном файле при их объединении.
Если вы не укажете в команде split никаких аргументов, файл будет разбит на несколько частей с именами вида x **. По умолчанию каждый файл будет содержать 1000 строк. Здесь ** — это двухсимвольный суффикс, который по умолчанию добавляется к каждому имени файла.

Читайте также:  Стандартный фоторедактор windows 10 где находится

Разделим тот же файл с помощью команды split без указания каких-либо аргументов, как показано ниже.

Эта команда разрежет файл Linux Security.mp4 на множество файлов с именами вида x**.

Каждый файл содержит 1000 строк. Вы можете убедиться в этом с помощью команды wc (word count):

Объединить все эти части в один файл можно с помощью команды:

Приведенная выше команда объединит все файлы в один с именем ls.mp4.

Заключение

Конечно, имеется множество утилит, как консольных, так и графических, которые позволяют разрезать и объединять файлы в Linux. Однако «split» — это встроенная команда, которая входит в состав ядра Linux. Поэтому вам не понадобится устаналивать никаких дополнительных программ. К тому же эта команда работает очень быстро.

Немного подробнее о команде split вы можете узнать из следующей статьи: «Изучаем команды linux: split»

Источник

Wpilot

суббота, 11 мая 2019 г.

Объединить текстовые файлы с помощью команды cat в Linux

Команда cat очень полезна в Linux. Она имеет три основные функции связанные с манипулированием текстовыми файлами: создание, отображение и объединение.

Давайте предположим что у вас есть три текстовых файла: file1.txt, file2.txt и file3.txt. Вы хотите объединить их в один текстовый файл содержащий информацию о всех трех в указанном порядке. Вы можете сделать это с помощью команды cat.

Просто откройте терминал и введите следующую команду:

cat file1.txt file2.txt file3.txt

Замените имена файлов в приведенном выше примере своими именами.

Объединенное содержимое трех текстовых файлов появится в вашем терминале.

Вероятно вы захотите объединить эти текстовые файлы в другой текстовый файл а не просто распечатать результаты на экране терминала. Это очень просто. Все что вам нужно сделать это добавить символ > после списка объединяемых файлов а затем указать имя окончательного текстового файла.

cat file1.txt file2.txt file3.txt> file4.txt

Теперь если вы откроете файл file4.txt с помощью команды cat или с помощью выбранного вами текстового редактора вы обнаружите что он содержит текст первых трех текстовых файлов.

Если вы объединяете списки элементов из нескольких файлов и хотите чтобы они были в алфавитном порядке в объединенном файле вы можете отсортировать объединенные элементы в конечном файле. Для этого используйте команду sort. Все строки текста в файле в результате будут отсортированы в алфавитном порядке.

cat file1.txt file2.txt file3.txt | sort > file4.txt

Читайте также:  Brother driver mac os

Существует также способ добавления файлов в конец существующего файла. Введите команду cat а затем файл которые вы хотите добавить в конец существующего файла. Затем введите два символа >> и имя конечного файла в который хотите добавить текст.

cat file5.txt >> file4.txt

Если вы хотите добавить немного нового текста в существующий текстовый файл используйте команду cat чтобы сделать это непосредственно из терминала. Введите команду cat за которой следует двойной символ >> и имя файла в который вы хотите добавить текст.

На следующей строке появится курсор. Начните вводить текст который хотите добавить в файл. Когда закончите нажмите Enter после последней строки а затем нажмите Ctrl + D чтобы скопировать этот текст в конец файла и выйти из cat.

Источник

Как разделить и объединить файлы в Linux

Разделение и объединение файлов в Linux — довольно простая задача, которая позволит нам фрагментировать файл на несколько файлов меньшего размера, что во многих случаях помогает нам фрагментировать файлы, которые занимают много места в памяти, либо для переноса их на внешние устройства хранения, либо для политик безопасности, таких как поддержание фрагментированных и распределенных копий наших данных. Для этого простого процесса мы будем использовать две важные команды split и cat.

Что раскол?

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

Чтобы углубиться в объем и характеристики этой команды, мы можем выполнить man split, где мы можем увидеть ее подробную документацию.

Что такое кошка?

В свою очередь, команда linux cat позволяет объединять и отображать файлы легко и эффективно, то есть с помощью этой команды мы можем просматривать различные текстовые файлы, а также можем объединять разделенные файлы.

Так же, как и в случае с split, мы можем просмотреть подробную документацию cat с помощью команды man cat.

Как разделить и объединить файлы в Linux с помощью split и cat

Как только вы освоите основы команд split и cat, разделить и объединить файлы в Linux будет довольно просто. Для общего примера, когда мы хотим разделить файл с именем test.7z, который весит 500 МБ, на несколько файлов по 100 МБ, нам просто нужно выполнить следующую команду:

$ split -b 100m tes.7z dividido

Эта команда вернет 5 файлов по 100 МБ, полученных из исходного файла, который будет иметь имена splitaa, splitab и так далее. Стоит отметить, что если мы добавим параметр -d в предыдущей инструкции имя результирующих файлов было бы числовым, то есть разделенное01, разделенное02 .

$ split -b -d 100m tes.7z dividido

Теперь, чтобы воссоединить файлы, которые мы разделили, нам просто нужно выполнить следующую команду из каталога, в котором хранятся файлы:

$ cat dividido* > testUnido.7z

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

Читайте также:  Kestrel web server linux

Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Полный путь к статье: Из Linux » GNU / Linux » Как разделить и объединить файлы в Linux

Источник

Объединить текстовые файлы

Здравствуйте уважаемые!
Прошу помощи.
Тяму не хватает наваять скрипт или последовательность команд.
Есть file1.txt и file2.txt в каждой строке уникальное содержимое:

На выходе после сравнения ящиков, нужно получить:

А если вхождений в первом или втором файле будет больше или меньше, что делать собираешься?

Вот тоже, хз. В одном файле около 100 строк, во 2м 200+. Надо вырезать все лишнее и оставить только сопоставимые.

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

Ничего не понял, но sort -k $F,$F join -1 $F1 -2 $F2

Если есть возможность отсортировать (а я так понял, что есть), то проще, конечно, join’ом.

Зачем в BEGIN магия со сплитом? Переменные инициализируются при первом обращении. Да и next, не думаю, что нужен.

К пуговицам-то претензии есть?

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

Источник

Изучаю Linux. Любой Линукс 🙂

среда, 31 марта 2010 г.

Объединение двух файлов в один построчно

Возникла у меня потребность в объединении двух текстовых файлов в один. Да не просто так, а чтобы их строки чередовались друг с другом. Для чего это нужно? Для того, чтобы организовать простейший, небольшой по размеру справочник для программы/скрипта/сайта и т.д. Я таким образом делал справочник МКБ-10 — коды заболеваний, который нужен был по работе. Что долго рассказывать, айда под кат за сокральными знаниями 😉

Итак, вот у меня два файла:
code.txt

Первый элемент из А
Второй элемент из А
. [пропущено].
Последний элемент из Z

На выходе у меня должно получиться следующий файл dict.txt:
A0001
Первый элемент А
A0002
Второй элемент А
. [пропущено].
Z9999
Последний элемент Z

Делается это очень и очень просто одной командой. Да! Shell-скрипты — это чудо какое-то 🙂

paste -d «\n» code.txt descr.txt > dict.txt

Вот что говорит МАН по поводу этой команды: «Выводит на стандартный вывод строки, состоящие из соответствующих строк каждого ФАЙЛА, разделенных символом табуляции.» Но это по-умолчанию. А если задать параметр -d (от англ. Delimetr — Разделитель) и указать этот самый разделитель, в данном случае «Перевод строки» — символ «\n», то вместо табуляции каманда будет выводить строки, разделенные «переводом строки».

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

Источник

Оцените статью