GNU/Linux >> Znalost Linux >  >> Linux

9 Užitečné příklady příkazu Split v Linuxu

Abych vám pomohl dozvědět se o příkazu split, používám relativně velký textový soubor obsahující 17170 řádků a velikost 1,4 MB. Kopii tohoto souboru si můžete stáhnout z odkazu GitHub.

Všimněte si, že v těchto příkladech nebudu přímo zobrazovat výstup kvůli velké velikosti souborů. Ke zvýraznění změn souborů použiji příkazy ll a wc.

Doporučuji vám, abyste se rychle podívali na příkaz wc, abyste porozuměli výstupu příkladů příkazů rozdělení.

Příklady příkazu Split v Linuxu

Toto je syntaxe příkazu Split:

split [options] filename [prefix]

Podívejme se, jak jej použít k rozdělení souborů v Linuxu.

1. Rozdělit soubory do více souborů

Ve výchozím nastavení příkaz split vytváří nové soubory pro každých 1000 řádků. Pokud není zadán žádný prefix, použije se „x“. Následující písmena vyjmenovávají soubory, proto je na prvním místě xaa, potom xab atd.

Rozdělme ukázkový soubor protokolu:

split someLogFile.log

Pokud použijete příkaz ls, můžete ve svém adresáři vidět několik nových souborů.

[email protected]:~/Documents$ ls
someLogFile.log  xab  xad  xaf  xah  xaj  xal  xan  xap  xar
xaa              xac  xae  xag  xai  xak  xam  xao  xaq

Můžete použít wc k rychlé kontrole počtu řádků po rozdělení.

[email protected]:~/Documents$ wc -l xaa xaq xar
1000 xaa
1000 xaq
170 xar

Pamatujte, že jsme viděli, že náš původní soubor měl 17 170 řádků. Takže můžeme vidět, že náš program udělal podle očekávání vytvořením 18 nových souborů. 17 z nich je vyplněno 1000 řádky a poslední má zbývajících 170 řádků.

Dalším způsobem, jak můžeme demonstrovat, co se děje, je spuštění příkazu s možností verbose. Pokud neznáte upovídanost, přicházíte o ně! Poskytuje podrobnější zpětnou vazbu o tom, co váš systém dělá, a je k dispozici pro použití s ​​mnoha příkazy.

split someLogFile.log --verbose

Na displeji můžete vidět, co se děje s vaším příkazem:

creating file 'xaa'
creating file 'xab'
creating file 'xac'
creating file 'xad'
creating file 'xae'
creating file 'xaf'
creating file 'xag'
creating file 'xah'
creating file 'xai'
creating file 'xaj'
creating file 'xak'
creating file 'xal'
creating file 'xam'
creating file 'xan'
creating file 'xao'
creating file 'xap'
creating file 'xaq'
creating file 'xar'

2. Rozdělte soubory do více souborů s konkrétními čísly řádků

Chápu, že se vám nemusí líbit, že jsou soubory rozděleny do souborů po 1000 řádcích. Toto chování můžete změnit pomocí -l možnost.

Když je toto přidáno, můžete nyní určit, kolik řádků chcete v každém z nových souborů.

split someLogFile.log -l 500

Jak můžete hádat, rozdělené soubory mají nyní každý 500 řádků, kromě posledního.

[email protected]:~/Documents$ wc -l xbh xbi
500 xbh
170 xbi

Nyní máte mnohem více souborů, ale s polovičním počtem řádků v každém.

3. Rozdělte soubory na n počet souborů

-n tato možnost usnadňuje rozdělení na určený počet kusů nebo kousků. Můžete přiřadit, kolik souborů chcete, přidáním celočíselné hodnoty za -n.

split someLogFile.log -n 15

Nyní můžete vidět, že je zde 15 nových souborů.

[email protected]:~/Documents$ ls
someLogFile.log  xaa  xab  xac  xad  xae  xaf  xag  xah  xai  xaj  xak  xal  xam  xan  xao

4. Rozdělit soubory s vlastní předponou názvu

Co když chcete použít split, ale zachovat původní název mého souboru nebo vytvořit úplně nový název namísto použití „x“?

Možná si pamatujete, že jste předponu viděli jako součást syntaxe popsané na začátku článku. Za zdrojový soubor můžete napsat vlastní název souboru.

split someLogFile.log someSeparatedLogFiles.log_

Zde jsou rozdělené soubory s názvy začínajícími danou předponou.

[email protected]:~/Documents$ ls
someLogFile.log               someSeparatedLogFiles.log_aj
someSeparatedLogFiles.log_aa  someSeparatedLogFiles.log_ak
someSeparatedLogFiles.log_ab  someSeparatedLogFiles.log_al
someSeparatedLogFiles.log_ac  someSeparatedLogFiles.log_am
someSeparatedLogFiles.log_ad  someSeparatedLogFiles.log_an
someSeparatedLogFiles.log_ae  someSeparatedLogFiles.log_ao
someSeparatedLogFiles.log_af  someSeparatedLogFiles.log_ap
someSeparatedLogFiles.log_ag  someSeparatedLogFiles.log_aq
someSeparatedLogFiles.log_ah  someSeparatedLogFiles.log_ar
someSeparatedLogFiles.log_ai

5. Rozdělit a zadat délku přípony

Split má výchozí délku přípony 2 [aa, ab, atd.]. To se automaticky změní, když se počet souborů zvýší, ale pokud byste to chtěli změnit ručně, je to také možné. Řekněme tedy, že chcete, aby se naše soubory jmenovaly něco jako someSeparatedLogFiles.log_aaaab.

jak to můžeš udělat? Možnost -a nám umožňuje určit délku přípony.

split someLogFile.log someSeparatedLogFiles.log_ -a 5

A zde jsou rozdělené soubory:

[email protected]:~/Documents$ ls
someLogFile.log                  someSeparatedLogFiles.log_aaaae  someSeparatedLogFiles.log_aaaaj  someSeparatedLogFiles.log_aaaao
someSeparatedLogFiles.log_aaaaa  someSeparatedLogFiles.log_aaaaf  someSeparatedLogFiles.log_aaaak  someSeparatedLogFiles.log_aaaap
someSeparatedLogFiles.log_aaaab  someSeparatedLogFiles.log_aaaag  someSeparatedLogFiles.log_aaaal  someSeparatedLogFiles.log_aaaaq
someSeparatedLogFiles.log_aaaac  someSeparatedLogFiles.log_aaaah  someSeparatedLogFiles.log_aaaam  someSeparatedLogFiles.log_aaaar
someSeparatedLogFiles.log_aaaad  someSeparatedLogFiles.log_aaaai  someSeparatedLogFiles.log_aaaan

6. Rozdělení s příponou číselného pořadí

Až do tohoto okamžiku jste viděli, že vaše soubory jsou odděleny pomocí různých kombinací písmen. Osobně mi přijde mnohem snazší rozlišovat soubory pomocí čísel.

Ponechme délku přípony z předchozího příkladu, ale změňme abecední uspořádání na numerické pomocí volby -d .

split someLogFile.log someSeparatedLogFiles.log_ -a 5 -d

Nyní tedy budete mít rozdělené soubory s číselnými údaji.

[email protected]:~/Documents$ ls
someLogFile.log                  someSeparatedLogFiles.log_00004  someSeparatedLogFiles.log_00009  someSeparatedLogFiles.log_00014
someSeparatedLogFiles.log_00000  someSeparatedLogFiles.log_00005  someSeparatedLogFiles.log_00010  someSeparatedLogFiles.log_00015
someSeparatedLogFiles.log_00001  someSeparatedLogFiles.log_00006  someSeparatedLogFiles.log_00011  someSeparatedLogFiles.log_00016
someSeparatedLogFiles.log_00002  someSeparatedLogFiles.log_00007  someSeparatedLogFiles.log_00012  someSeparatedLogFiles.log_00017
someSeparatedLogFiles.log_00003  someSeparatedLogFiles.log_00008  someSeparatedLogFiles.log_00013

7. K rozděleným souborům přidejte hexadecimální přípony

Další možností pro vytvoření přípony je použití vestavěné hexadecimální přípony, která střídá uspořádaná písmena a čísla.

Pro tento příklad zkombinuji několik věcí, které jsem vám již ukázal. Rozdělím soubor pomocí vlastní předpony. Zvolil jsem podtržítko pro účely čitelnosti.

Použil jsem -x možnost vytvořit hexadecimální příponu. Potom jsem náš soubor rozdělil na 50 částí a přiřadil příponu délku 6.

split someLogFile.log _ -x -n50 -a6

A zde je výsledek výše uvedeného příkazu:

[email protected]:~/Documents$ ls
_000000  _000003  _000006  _000009  _00000c  _00000f  _000012  _000015  _000018  _00001b  _00001e  _000021  _000024  _000027  _00002a  _00002d  _000030
_000001  _000004  _000007  _00000a  _00000d  _000010  _000013  _000016  _000019  _00001c  _00001f  _000022  _000025  _000028  _00002b  _00002e  _000031
_000002  _000005  _000008  _00000b  _00000e  _000011  _000014  _000017  _00001a  _00001d  _000020  _000023  _000026  _000029  _00002c  _00002f  someLogFile.log

8. Rozdělte soubory do více souborů určité velikosti

Je také možné použít velikost souboru k rozdělení souborů na rozdělení. Možná potřebujete odeslat velký soubor přes síť s omezenou velikostí co nejefektivněji. Můžete určit přesnou velikost pro vaše požadavky.

Syntaxe může být trochu složitější, protože pokračujeme v přidávání možností. Takže vysvětlím, jak -b příkaz funguje před zobrazením příkladu.

Pokud chcete vytvořit soubory určité velikosti, použijte -b volba. Poté můžete napsat n K[B], n M[B], n G[B] kde n je hodnota velikosti vašeho souboru a K [1024] je -kibi, M je -mebi, G je -gibi atd. KB [1000] je kilo, MB – mega atd.

Může to vypadat, že se toho děje hodně, ale není to tak složité, když to rozeberete. Zadali jste zdrojový soubor, naši předponu cílového souboru, číselnou příponu a separaci podle velikosti souboru 128 kB.

split someLogFile.log someSeparatedLogFiles.log_ -d -b 128KB

Zde jsou rozdělené soubory:

[email protected]:~/Documents$ ls
someLogFile.log               someSeparatedLogFiles.log_02  someSeparatedLogFiles.log_05  someSeparatedLogFiles.log_08
someSeparatedLogFiles.log_00  someSeparatedLogFiles.log_03  someSeparatedLogFiles.log_06  someSeparatedLogFiles.log_09
someSeparatedLogFiles.log_01  someSeparatedLogFiles.log_04  someSeparatedLogFiles.log_07  someSeparatedLogFiles.log_10

Výsledek můžete ověřit pomocí příkazu „wc“.

[email protected]:~/Documents$ wc someSeparatedLogFiles.log_0*
1605    4959  128000 someSeparatedLogFiles.log_00
1605    4969  128000 someSeparatedLogFiles.log_01
1605    4953  128000 someSeparatedLogFiles.log_02
1605    4976  128000 someSeparatedLogFiles.log_03
1605    4955  128000 someSeparatedLogFiles.log_04
1605    4975  128000 someSeparatedLogFiles.log_05
1605    4966  128000 someSeparatedLogFiles.log_06
1605    4964  128000 someSeparatedLogFiles.log_07
1605    4968  128000 someSeparatedLogFiles.log_08
1605    4959  128000 someSeparatedLogFiles.log_09
16050   49644 1280000 total

9. Rozdělte soubory do více souborů o velikosti „Nejvíce“ n s

Pokud jste chtěli rozdělit soubory na zhruba stejnou velikost, ale zachovat řádkovou strukturu, může to být pro vás nejlepší volba. S -C , můžete zadat maximální velikost. Poté program automaticky rozdělí soubory na základě celých řádků.

split someLogFile.log someNewLogFiles.log_ -d -C 1MB

Ve výstupu můžete vidět, že první rozdělený soubor má velikost téměř 1 MB, zatímco zbytek souboru je ve druhém souboru.

[email protected]:~/Documents$ ll
total 2772
drwxr-xr-x  2 chris chris   81920 Jul 24 22:01 ./
drwxr-xr-x 19 chris chris    4096 Jul 23 22:23 ../
-rw-r--r--  1 chris chris 1369273 Jul 20 17:52 someLogFile.log
-rw-r--r--  1 chris chris  999997 Jul 24 22:01 someNewLogFiles.log_00
-rw-r--r--  1 chris chris  369276 Jul 24 22:01 someNewLogFiles.log_01

Bonusový tip:Opětovné spojení rozdělených souborů

Toto není rozdělený příkaz, ale může být užitečný pro nové uživatele.

[email protected]:~/Documents$ ls
xaa  xab  xac  xad  xae  xaf  xag  xah  xai  xaj  xak  xal  xam  xan  xao  xap  xaq  xar

K opětovnému spojení těchto souborů a vytvoření repliky našeho kompletního dokumentu můžete použít jiný příkaz. Příkaz cat je zkratka pro zřetězení, což je jen ozdobné slovo, které znamená „spojit položky dohromady“. Protože všechny soubory začínají písmenem „x“, hvězdička použije příkaz na všechny soubory, které tímto písmenem začínají.

[email protected]:~/Documents$ cat x* > recoveredLogFile.log
[email protected]:~/Documents$ ls
recoveredLogFile.log  xab  xad  xaf  xah  xaj  xal  xan  xap  xar
xaa                   xac  xae  xag  xai  xak  xam  xao  xaq

Jak můžete vidět, náš znovu vytvořený soubor má stejnou velikost jako náš původní.

wc -l recreatedLogFile.log
17170 recreatedLogFile.log

Naše formátování (včetně počtu řádků) je ve vytvořeném souboru zachováno.

Pokud s Linuxem začínáte, doufám, že vám tento návod pomohl pochopit příkaz split. Pokud jste zkušenější, řekněte nám svůj oblíbený způsob použití split v komentářích níže!

Začátečník nebo zkušený bych vám doporučil podívat se také na příkaz csplit, což je o něco lepší způsob rozdělování souborů v příkazovém řádku Linuxu.


Linux
  1. Příkaz mv v Linuxu:7 základních příkladů

  2. V příkladech příkazů v Linuxu

  3. soubor Příklady příkazů v Linuxu

  1. 12 Užitečné příklady příkazů Wget v Linuxu

  2. 5 Praktické příklady příkazu dd v Linuxu

  3. Jak používat příkaz id v Linuxu:5 užitečných příkladů

  1. Příkaz ls v Linuxu:17 vysvětlení užitečných příkladů

  2. Základní příklady příkazu File v Linuxu

  3. 14 Užitečné příklady příkazů „cat“ v Linuxu