Научете как да разделите голям файл на множество по-малки файлове с помощта на командата split в Linux.
Linux предоставя широк набор от команди за манипулиране и обработка на текст, включително командата за разделяне. С разделянето можете лесно да разделяте големи файлове на по-малки или да извличате конкретни части от файл въз основа на определени критерии.
Нека проучим как да използваме командата split за разделяне на файлове в Linux. Независимо дали трябва да извлечете определени части от голям файл или да разделите файл на по-малки части, командата split може да ви помогне да постигнете целите си с лекота.
Какво представлява командата за разделяне?
Командата split е популярен инструмент за команден ред на Linux, създаден от Torbjorn Granlund и Richard M. Столман. Както подсказва името, командата split се използва за разделяне на файл на по-малки подфайлове.
Тази команда е полезна за управление на големи файлове или при прехвърляне на файлове през мрежи с ограничена честотна лента. Като разделите голям файл на по-малки части, можете да намалите количеството данни, които трябва да бъдат прехвърлени или съхранени във всеки един момент. Можете също да обърнете командата за разделяне, за да комбинирате няколко файла в един.
Синтаксисът на разделени команди
Основният синтаксис на командата 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, можете да спестите време и ресурси и да станете по-ефективни.