Научете как да разделите голям файл на множество по-малки файлове с помощта на командата split в Linux.

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

Нека проучим как да използваме командата split за разделяне на файлове в Linux. Независимо дали трябва да извлечете определени части от голям файл или да разделите файл на по-малки части, командата split може да ви помогне да постигнете целите си с лекота.

Какво представлява командата за разделяне?

Командата split е популярен инструмент за команден ред на Linux, създаден от Torbjorn Granlund и Richard M. Столман. Както подсказва името, командата split се използва за разделяне на файл на по-малки подфайлове.

Тази команда е полезна за управление на големи файлове или при прехвърляне на файлове през мрежи с ограничена честотна лента. Като разделите голям файл на по-малки части, можете да намалите количеството данни, които трябва да бъдат прехвърлени или съхранени във всеки един момент. Можете също да обърнете командата за разделяне, за да комбинирате няколко файла в един.

instagram viewer

Синтаксисът на разделени команди

Основният синтаксис на командата split е:

разделяне [ОПЦИЯ]... [ФАЙЛ] [ПРЕФИКС]
  • [ОПЦИЯ]: Командата за разделяне има различни опции, за да решите как искате да бъде разделен файлът и други специфични функции, които може да ви е интересно да добавите.
  • [ФАЙЛ]: Това е пътят до файла, който искате да разделите.
  • [ПРЕФИКС]: Това се отнася до префикса на подфайловете.

Как да използвате командата за разделяне

Можете да използвате командата за разделяне, за да разделите голям файл на по-малки файлове по размер или дължина. Можете дори да изберете конкретния брой по-малки файлове, които искате.

За демонстрация ще използваме текстов файл с име largefile.txt. Моля, изберете текстов файл с няколко реда и доста голям размер за този урок. Ако не разполагате с това, можете да използвате текстов редактор на Linux или командата cat, за да поставите голям текст и да го запазите.

Разделяне на големи файлове въз основа на броя на редовете

Можете да използвате командата split, за да разделите голям файл на по-малки файлове въз основа на определен брой редове на файл. Ето синтаксиса:

split -l [брой редове] [входен файл] [префикс на изходен файл]

Например, може да искате да разделите файл с 210 реда на файлове с по 50 реда всеки; ще получите пет по-малки файла. Първите четири файла ще имат по 50 реда, а петият файл ще съдържа само 10 реда.

За да разделите файл, наречен "largefile.txt" на по-малки файлове от 100 реда всеки, изпълнете тази команда:

split -l 100 largefile.txt smallfile

Изведете съдържанието на директорията с помощта на командата lsи ще видите разделените файлове.

Разделяне на големи файлове въз основа на размера

Можете също да използвате командата split, за да разделите голям файл на по-малки файлове въз основа на конкретен размер на файла. Ето основния синтаксис:

split -b [размер в байтове] [входен файл] [префикс на изходен файл]

Разделете largefile.txt на по-малки файлове от 300 байта всеки, като изпълните тази команда:

split -b 300 largefile.txt smallfile

Ето резултата:

Разделете голям файл на определен брой файлове

Можете също така да разделите файл на фиксиран брой файлове, независимо от броя на файловете и байтовете в тях. Правите това с помощта на опция. Ето синтаксиса:

split -n [брой файлове] [входящ файл] [префикс на изходен файл]

За да разделите голям файл на пет части, изпълнете тази команда:

split -n 5 largefile.txt smallfile

Резултатът трябва да изглежда така:

Променете дължината на суфикса на разделените файлове

Както може би сте забелязали, дължината по подразбиране на суфиксите, прикачени към името на изходния файл, е две. Например smallfileаа, малък файлаб, малък файлаки т.н.

За да промените дължината на наставката, използвайте опция. Ето синтаксиса за промяна на дължината на суфикса:

split -a [дължина на суфикс] [входен файл] [префикс на изходен файл]

Можете да използвате тази опция за дължина на суфикса заедно с други команди за разделяне. За да разделите файла largefile.txt на 10 части с дължина на суфикса 4, изпълнете тази команда:

split -a 4 -n 10 largefile.txt smallfile

Когато изброявате съдържанието на директорията, изходът трябва да изглежда така:

Обединяване на множество файлове с cat

Добрата новина е, че винаги можете да обедините разделените файлове заедно, за да създадете оригиналния файл. За да обедините разделените файлове обратно в оригиналния файл, използвайте командата cat. Ето синтаксиса за това:

cat [разделени файлове] > [изходен файл]

Когато използвате командата cat за обединяване на разделени файлове, важно е да посочите правилния ред на разделените файлове.

Командата cat просто свързва файловете в указания ред, така че ако файловете не са в правилния ред, обединеният файл ще бъде повреден.

В сценарий, при който имате много разделени файлове, например сто разделени файла, би било тромаво да въвеждате всеки файл един след друг и в правилния ред.

Тук идва префиксът. Просто добавянето на знак звездичка (*) ви позволява да обедините всички файлове, започващи с този префикс.

cat префикс* > [изходен файл]

Ето примерна команда, която обединява разделени файлове smallfileaa, smallfileab, малък файл, и smallfilead в един файл, наречен bigfile.txt:

cat smallfile* > bigfile.txt

Тази команда ще свърже съдържанието на всички разделени файлове, които съответстват на шаблона малък файл* и пренасочва изхода към нов файл, наречен bigfile.txt. Той също така ще изброи разделените файлове в естествен ред въз основа на техните имена, което трябва да бъде правилният ред за сливане.

Командата split е само един от многото инструменти, които Linux предоставя, за да ви помогне да управлявате ефективно големи файлове, като ги разделяте на по-малки, по-управляеми парчета.

Като овладеете командите за обработка на текст в Linux, можете да спестите време и ресурси и да станете по-ефективни.