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

Обновлено: 03.07.2024

Разделение и объединение файлов в 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, я надеюсь, вам это понравится и до встречи в следующей статье.

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

Полный путь к статье: Из Linux » GNU / Linux » Как разделить и объединить файлы в 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

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


cat file5.txt >> file4.txt

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

cat >> file4.txt

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

Оригинал: 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 Мб.

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

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

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

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

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

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

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

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

Заключение

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

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

У меня есть 14 файлов, которые являются частью одного текста. Я хотел бы объединить их в один. Как это сделать?

Помните, что указанная вами команда, вероятно, будет делать то, что хочет плакат, если они пронумерованы таким образом, что оболочка расширяется * в «естественном» порядке. Если у вас есть «file1.txt . file9.txt . file14.txt», он не будет работать, потому что file1? .Txt будет сортировать между file1.txt и file2.txt. Вам придется переименовать их в «file01.txt . file09.txt . file14.txt». Скажи, echo * если ты не уверен. @Warren: хороший момент (или вы можете использовать zsh и установить его numeric_glob_sort опцию). @ Уоррен-молодой правильный, полезный предупреждающий комментарий. Но в моем случае порядок не имеет значения (поскольку файлы содержат просто простые операторы SQL, вставляющие записи данных, которые не имеют зависимостей). Осторожно, если количество файлов превышает определенный лимит, вы можете запустить с ошибками вроде - / bin / cat: список аргументов слишком длинный @ ARA1307 Только если файл уже существует; в противном случае глобус будет расширен до того, как оболочка откроет файл для записи в него. Хороший момент в этой ситуации, хотя

Если ваши файлы не находятся в одном каталоге, вы можете использовать команду find до объединения:

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

Это может или не может сохранить порядок файлов.

Это путь, если у вас много файлов. Вы избегаете ошибки «список аргументов слишком длинный». Вам нужно -name "* .csv" вместо -name * .csv - без кавычек это не сработает. Потребность в кавычках зависит от версии команды find, особенно в find и awk. Это проблема, когда вы работаете на Mac, версии обеих программ немного устарели. До сих пор на Ubuntu, Fedora, Debian и CentOS все работало без кавычек Я ожидал бы котировочную версию работать , когда нет файлов в текущем каталоге , соответствующих шаблон "*.csv" , так как оболочка будет затем передать литерал * в find .

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

или используйте сопоставление с образцом, которое будет игнорировать объединенный файл;

cat * > merged-file работает отлично. Глобы обрабатываются до создания файла. Если он merged-file уже существует, cat (по крайней мере , мой) определит, что это выходной файл, и откажется его читать. Если файл уже существует, и у вас есть перенаправление позже в конвейере, то он, очевидно, не может этого сделать, так что тогда и только тогда вы получите файл побега. cat не может определить, является ли файл выходным. Перенаправление происходит в оболочке; cat только печатает на стандартный вывод.

Как и другие здесь говорят . Вы можете использовать cat

Допустим, у вас есть:

И вы только хотите , file01 чтобы file03 и fileA к fileC :

Или, используя расширение скобки:

Или, используя причудливое расширение фигурных скобок:

Или вы можете использовать for цикл:

Обратите внимание, что строка 3 не будет работать в качестве шаблона сглаживания.

Вы можете указать pattern файл, а затем объединить их все следующим образом:

Другой вариант - это sed:

Или без перенаправления .

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

Команда Cat в Linux

Команда cat является одной из наиболее широко используемых команд в Linux. Название cat команды происходит от его функциональности против кошачьих файлов Enate. Он может читать и объединять файлы, записывая их содержимое в стандартный вывод. Если файл не указан или имя входного файла указано как один дефис ( - ), он считывает из стандартного ввода.

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

Синтаксис команды Cat

Прежде чем перейти к использованию команды cat, давайте начнем с обзора основного синтаксиса.

Выражения утилиты cat имеют следующую форму:

  • OPTIONS - кошачьи варианты . Используйте cat --help для просмотра всех доступных опций.
  • FILE_NAMES - Ноль или более имен файлов.

Отображение содержимого файла

Самое основное и распространенное использование команды cat - это чтение содержимого файлов.

Например, следующая команда отобразит содержимое /etc/issue файла в терминале:


Следующая команда будет копировать содержимое file1.txt с file2.txt помощью ( > оператора):

Обычно вы используете cp команду для копирования файла.

Если file2.txt файл не существует, команда создаст его. В противном случае файл будет перезаписан.

Используйте ( >> оператор) , чтобы добавить содержимое из file1.txt к file2.txt :

То же, что и раньше, если файл отсутствует, он будет создан.

Печатать номера строк

Чтобы отобразить содержимое файла с номерами строк, используйте -n параметр:

Подавить повторяющиеся пустые строки

Используйте -s опцию, чтобы пропустить повторяющиеся пустые выходные строки:

Отображать символы табуляции

-T Опция позволяет визуально различать вкладки и пробелы.

Символы табуляции будут отображаться как ^I .

Показать конец строк

Чтобы отобразить невидимый символ окончания строки, используйте -e аргумент:

Окончания строк будут отображаться как $ .

Объединение файлов

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

Например, следующая команда будет считывать содержимое file1.txt и file2.txt и отображать результат в терминале:


Вы можете объединить два или более текстовых файла и записать их в файл.

Следующая команда конкатенации содержимое file1.txt и file2.txt и записать их в новый файл , combinedfile.txt используя ( > оператор):


Если combinedfile.txt файл не существует, команда создаст его. В противном случае файл будет перезаписан.

Для того, чтобы объединить содержимое file1.txt и file2.txt и добавить результат на file3.txt использование ( >> оператор):


Если файла нет, он будет создан.

При объединении файлов с cat , вы можете использовать те же аргументы, что и в предыдущем разделе.

Создание файлов

Создание небольших файлов с cat ним часто проще, чем открытие текстового редактора, такого как nano , Vim, Sublime Text или Visual Studio Code.

Чтобы создать новый файл, используйте cat команду, за которой следует оператор перенаправления ( > ) и имя файла, который вы хотите создать. Нажмите Enter , введите текст и, как только вы закончите, нажмите, CRTL+D чтобы сохранить файл.

В следующем примере мы создаем новый файл с именем file1.txt :



Если файл с именем file1.txt присутствует, он будет перезаписан. Используйте >> оператор ' ', чтобы добавить вывод в существующий файл.

Вывод

Команда cat может отображать, комбинировать и создавать новый файл.

Читайте также: