команда Split

Thank you for reading this post, don't forget to subscribe!

Коман­да split в Linux поз­во­ля­ет раз­би­вать фай­лы на несколь­ко фай­лов. Есть несколь­ко спо­со­бов настро­ить пара­мет­ры для ваше­го при­ло­же­ния. Мы пока­жем вам несколь­ко при­ме­ров коман­ды split, кото­рые помо­гут вам понять ее использование.

Обра­ти­те вни­ма­ние, что мы не будем отоб­ра­жать вывод напря­мую в этих при­ме­рах из-за боль­ших раз­ме­ров фай­лов. Мы будем исполь­зо­вать коман­ды ll и wc для выде­ле­ния изме­не­ний файла.

Мы сове­ту­ем вам быст­ро взгля­нуть на коман­ду wc, что­бы понять вывод при­ме­ров коман­ды split.

 

Примеры команды Split в Linux

Син­так­сис коман­ды Split:

 

Давай­те посмот­рим, как исполь­зо­вать его для раз­де­ле­ния фай­лов в Linux.

 

1. Разделите файлы на несколько файлов

По умол­ча­нию коман­да split созда­ет новые фай­лы для каж­дых 1000 строк. Если пре­фикс не ука­зан, он будет исполь­зо­вать ‘x’. Сле­ду­ю­щие бук­вы пере­чис­ля­ют фай­лы, поэто­му сна­ча­ла идет xaa, затем xab и так далее.

Давай­те раз­де­лим при­мер фай­ла журнала:

 

Если вы исполь­зу­е­те коман­ду ls, вы може­те уви­деть несколь­ко новых фай­лов в вашем каталоге.

 

Вы може­те исполь­зо­вать wc для быст­рой про­вер­ки коли­че­ства строк после разделения.

 

Помни­те, что ранее мы виде­ли, что наш исход­ный файл содер­жал 17 170 строк. Таким обра­зом, мы можем видеть, что наша про­грам­ма созда­ла как и ожи­да­лось, 18 новых фай­лов. 17 из них запол­не­ны 1000 стро­ка­ми в каж­дой, а послед­няя име­ет остав­ши­е­ся 170 строк.

Дру­гой спо­соб про­де­мон­стри­ро­вать, что про­ис­хо­дит, – запу­стить коман­ду с пара­мет­ром verbose. Если вы не зна­ко­мы с verbose, вы про­пус­ка­е­те! Он предо­став­ля­ет более подроб­ные отзы­вы о том, что дела­ет ваша систе­ма, и он досту­пен для исполь­зо­ва­ния со мно­ги­ми командами.

 

Вы може­те уви­деть, что про­ис­хо­дит с вашей коман­дой на дисплее:

 

2. Разделите файлы на несколько файлов с определенными номерами строк

Мы пони­ма­ем, что вам может не понра­вить­ся, что фай­лы раз­би­ты на фай­лы по 1000 строк. Вы може­те изме­нить это пове­де­ние с помо­щью опции -l.

Теперь вы може­те ука­зать, сколь­ко строк вы хоти­те в каж­дом из новых файлов.

 

Как вы може­те дога­дать­ся, теперь раз­де­лен­ные фай­лы име­ют по 500 строк каж­дая, кро­ме последней.

 

Теперь у вас есть намно­го боль­ше фай­лов, но с поло­ви­ной строк в каждом.

 

3. Разделение файлов на n файлов

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

 

Теперь вы може­те видеть, что есть 15 новых файлов.

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

Что делать, если вы хоти­те исполь­зо­вать split, но оста­вить ори­ги­наль­ное имя мое­го фай­ла или вооб­ще создать новое имя вме­сто ‘x’?

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

 

Вот раз­де­лен­ные фай­лы с име­на­ми, начи­на­ю­щи­ми­ся с дан­но­го префикса.

 

5. Разделите и укажите длину суффикса

Раз­де­ле­ние име­ет дли­ну суф­фик­са по умол­ча­нию 2 [aa, ab и т. д.]. Это изме­нит­ся авто­ма­ти­че­ски при уве­ли­че­нии коли­че­ства фай­лов, но если вы хоти­те изме­нить его вруч­ную, это тоже воз­мож­но. Допу­стим, вы хоти­те, что­бы наши фай­лы были назва­ны как-то вро­де AndreyExSeparatedLogFiles.log_aaaab.

Как ты можешь это сде­лать? Опция -a поз­во­ля­ет нам ука­зать дли­ну суффикса.

 

И вот раз­де­лен­ные файлы:

 

6. Разделить с помощью числового суффикса заказа

До это­го момен­та вы виде­ли, что ваши фай­лы раз­де­ле­ны с исполь­зо­ва­ни­ем раз­лич­ных бук­вен­ных ком­би­на­ций. Лич­но нам гораз­до про­ще раз­ли­чать фай­лы по номерам.

Давай­те сохра­ним дли­ну суф­фик­са из преды­ду­ще­го при­ме­ра, но изме­ним алфа­вит­ную орга­ни­за­цию на чис­ло­вую с помо­щью опции -d.

 

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

 

7. Добавьте шестнадцатеричные суффиксы для разделения файлов

Дру­гой вари­ант созда­ния суф­фик­са – исполь­зо­вать встро­ен­ный шест­на­дца­те­рич­ный суф­фикс, кото­рый чере­ду­ет упо­ря­до­чен­ные бук­вы и цифры.

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

Мы исполь­зо­ва­ли опцию -x для созда­ния шест­на­дца­те­рич­но­го суф­фик­са. Затем раз­де­ли­ли наш файл на 50 кус­ков и дали суф­фик­су дли­ну 6.

 

И вот резуль­тат выше­упо­мя­ну­той команды:

 

8. Разделите файлы на несколько файлов определенного размера

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

Син­так­сис может стать немно­го слож­нее, так как мы про­дол­жа­ем добав­лять опции. Итак, мы объ­яс­ним, как рабо­та­ет коман­да, преж­де чем пока­зы­вать пример.

Если вы хоти­те создать фай­лы опре­де­лен­но­го раз­ме­ра, исполь­зуй­те опцию -b. Затем вы може­те напи­сать n K [B], n M [B], n G [B], где n – это зна­че­ние раз­ме­ра ваше­го фай­ла, а K [1024] – это -kibi, M – -mebi, G – -gibi и далее. КБ [1000] – кило­грамм, МБ – мега и т. д.

Может пока­зать­ся, что мно­гое про­ис­хо­дит, но это не так слож­но, когда раз­би­ва­ешь это. Вы ука­за­ли исход­ный файл, наш пре­фикс име­ни фай­ла назна­че­ния, чис­ло­вой суф­фикс и раз­де­ле­ние по раз­ме­ру фай­ла 128 КБ.

 

Вот раз­де­лен­ные файлы:

 

Вы може­те про­ве­рить резуль­тат с помо­щью коман­ды wc.

 

9. Разбивка файлов на несколько с определенным размером файла

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

 

В выво­де вы може­те видеть, что пер­вый раз­де­лен­ный файл име­ет раз­мер око­ло 1 МБ, тогда как осталь­ная часть фай­ла нахо­дит­ся во вто­ром файле.

 

Бонусный совет: воссоединение разделенных файлов

Это не коман­да split, но она может быть полез­на для новых пользователей.

 

Вы може­те исполь­зо­вать дру­гую коман­ду, что­бы при­со­еди­нить­ся к этим фай­лам и создать копию наше­го пол­но­го доку­мен­та. Коман­да cat – это сокра­ще­ние от кон­ка­те­на­ции, это про­сто при­чуд­ли­вое сло­во, озна­ча­ю­щее «объ­еди­нить эле­мен­ты вме­сте». Посколь­ку все фай­лы начи­на­ют­ся с бук­вы «х», звез­доч­ка будет при­ме­нять коман­ду ко всем фай­лам, кото­рые начи­на­ют­ся с этой буквы.

 

Как види­те, наш вос­со­здан­ный файл име­ет тот же раз­мер, что и наш оригинал.

 

Наше фор­ма­ти­ро­ва­ние (вклю­чая коли­че­ство строк) сохра­ня­ет­ся в создан­ном файле.