GNU/Linux >> Belajar Linux >  >> Linux

9 Contoh Perintah Split yang Berguna di Linux

Untuk membantu Anda mempelajari tentang perintah split, saya menggunakan file teks yang relatif besar berisi 17170 baris dan berukuran 1,4 MB. Anda dapat mengunduh salinan file ini dari tautan GitHub.

Perhatikan bahwa saya tidak akan langsung menampilkan output dalam contoh ini karena ukuran file yang besar. Saya akan menggunakan perintah ll dan wc untuk menyorot perubahan file.

Saya menyarankan Anda untuk melihat sekilas perintah wc untuk memahami output dari contoh perintah split.

Contoh perintah Split di Linux

Ini adalah sintaks dari perintah Split:

split [options] filename [prefix]

Mari kita lihat bagaimana menggunakannya untuk membagi file di Linux.

1. Pisahkan file menjadi beberapa file

Secara default, perintah split membuat file baru untuk setiap 1000 baris. Jika tidak ada awalan yang ditentukan, itu akan menggunakan 'x'. Huruf-huruf yang mengikuti menyebutkan file-file itu karena xaa didahulukan, lalu xab, dan seterusnya.

Mari kita pisahkan contoh file log:

split someLogFile.log

Jika Anda menggunakan perintah ls, Anda dapat melihat beberapa file baru di direktori Anda.

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

Anda dapat menggunakan wc untuk memeriksa jumlah baris dengan cepat setelah pemisahan.

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

Ingat dari sebelumnya bahwa kami melihat file awal kami memiliki 17.170 baris. Jadi kita bisa melihat program kita sudah berjalan seperti yang diharapkan dengan membuat 18 file baru. 17 dari mereka diisi dengan 1000 baris masing-masing, dan yang terakhir memiliki sisa 170 baris.

Cara lain untuk menunjukkan apa yang terjadi adalah dengan menjalankan perintah dengan opsi verbose. Jika Anda tidak terbiasa dengan verbose, Anda ketinggalan! Ini memberikan umpan balik yang lebih mendetail tentang apa yang dilakukan sistem Anda dan tersedia untuk digunakan dengan banyak perintah.

split someLogFile.log --verbose

Anda dapat melihat apa yang terjadi dengan perintah Anda di layar:

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. Pisahkan file menjadi beberapa file dengan nomor baris tertentu

Saya mengerti bahwa Anda mungkin tidak menyukai file yang dipecah menjadi file 1000 baris. Anda dapat mengubah perilaku ini dengan -l pilihan.

Saat ini ditambahkan, Anda sekarang dapat menentukan berapa banyak baris yang Anda inginkan di setiap file baru.

split someLogFile.log -l 500

Seperti yang bisa Anda tebak, sekarang file split masing-masing memiliki 500 baris, kecuali yang terakhir.

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

Sekarang Anda memiliki lebih banyak file, tetapi dengan setengah baris di setiap file.

3. Pisahkan file menjadi n jumlah file

-n opsi membuat pemisahan menjadi sejumlah potongan atau potongan yang ditentukan menjadi mudah. Anda dapat menetapkan berapa banyak file yang Anda inginkan dengan menambahkan nilai integer setelah -n.

split someLogFile.log -n 15

Sekarang Anda dapat melihat bahwa ada 15 file baru.

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

4. Pisahkan file dengan awalan nama khusus

Bagaimana jika Anda ingin menggunakan split tetapi tetap menggunakan nama asli file saya atau membuat nama baru sekaligus daripada menggunakan 'x'?

Anda mungkin ingat melihat awalan sebagai bagian dari sintaks yang dijelaskan di awal artikel. Anda dapat menulis nama file kustom Anda sendiri setelah file sumber.

split someLogFile.log someSeparatedLogFiles.log_

Berikut adalah file split dengan nama yang dimulai dengan awalan yang diberikan.

[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. Pisahkan dan Tentukan Panjang Sufiks

Split memiliki panjang akhiran default 2 [aa, ab, dll]. Ini akan berubah secara otomatis seiring bertambahnya jumlah file, tetapi jika Anda ingin mengubahnya secara manual, itu juga mungkin. Jadi katakanlah Anda ingin file kami diberi nama seperti someSeparatedLogFiles.log_aaaab.

Bagaimana Anda bisa melakukan ini? Opsi -a memungkinkan kita untuk menentukan panjang sufiks.

split someLogFile.log someSeparatedLogFiles.log_ -a 5

Dan inilah file splitnya:

[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. Pisahkan dengan akhiran urutan numerik

Sampai saat ini, Anda telah melihat file Anda dipisahkan menggunakan kombinasi huruf yang berbeda. Secara pribadi, saya merasa lebih mudah untuk membedakan file menggunakan angka.

Mari kita pertahankan panjang sufiks dari contoh sebelumnya, tetapi ubah organisasi abjad menjadi numerik dengan opsi -d .

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

Jadi sekarang Anda akan membagi file dengan cukup numerik.

[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. Tambahkan sufiks hex untuk membagi file

Pilihan lain untuk pembuatan sufiks adalah menggunakan sufiks heksa bawaan yang menggantikan huruf dan angka berurutan.

Untuk contoh ini, saya akan menggabungkan beberapa hal yang telah saya tunjukkan kepada Anda. Saya akan membagi file menggunakan awalan saya sendiri. Saya memilih garis bawah untuk tujuan keterbacaan.

Saya menggunakan -x pilihan untuk membuat akhiran hex. Kemudian saya membagi file kami menjadi 50 bagian dan memberikan akhiran dengan panjang 6.

split someLogFile.log _ -x -n50 -a6

Dan inilah hasil dari perintah di atas:

[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. Pisahkan file menjadi beberapa file dengan ukuran tertentu

Anda juga dapat menggunakan ukuran file untuk memecah file secara terpisah. Mungkin Anda perlu mengirim file besar melalui jaringan yang dibatasi ukuran seefisien mungkin. Anda dapat menentukan ukuran yang tepat untuk kebutuhan Anda.

Sintaksnya bisa menjadi sedikit rumit saat kami terus menambahkan opsi. Jadi, saya akan menjelaskan bagaimana -b perintah berfungsi sebelum menampilkan contoh.

Saat Anda ingin membuat file dengan ukuran tertentu, gunakan -b pilihan. Anda kemudian dapat menulis n K[B], n M[B], n G[B] dimana n adalah nilai ukuran file Anda dan K [1024] adalah -kibi, M adalah -mebi, G adalah -gibi, dan seterusnya. KB [1000] adalah kilo, MB – mega dll.

Ini mungkin terlihat seperti ada banyak hal yang terjadi, tetapi tidak sekompleks itu saat Anda menguraikannya. Anda telah menentukan file sumber, awalan nama file tujuan kami, sufiks numerik, dan pemisahan menurut ukuran file 128kB.

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

Berikut adalah file split:

[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

Anda dapat memverifikasi hasilnya dengan perintah '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. Pisahkan file menjadi beberapa file dengan ukuran 'Paling Banyak' n dengan

Jika Anda ingin membagi file menjadi ukuran yang kira-kira sama, tetapi mempertahankan struktur garis, ini mungkin pilihan terbaik untuk Anda. Dengan -C , Anda dapat menentukan ukuran maksimum. Kemudian program akan secara otomatis membagi file berdasarkan baris yang lengkap.

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

Anda dapat melihat di output bahwa file split pertama berukuran hampir 1 MB sedangkan sisa file ada di file kedua.

[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

Kiat Bonus:Menggabungkan kembali file yang terpisah

Ini bukan perintah terpisah, tetapi mungkin berguna bagi pengguna baru.

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

Anda dapat menggunakan perintah lain untuk menggabungkan kembali file-file itu dan membuat replika dokumen lengkap kami. Perintah cat adalah kependekan dari concatenate yang hanya merupakan kata mewah yang berarti “bergabung item bersama-sama”. Karena semua file dimulai dengan huruf 'x', tanda bintang akan menerapkan perintah ke file apa pun yang dimulai dengan huruf itu.

[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

Seperti yang Anda lihat, file yang kami buat ulang berukuran sama dengan aslinya.

wc -l recreatedLogFile.log
17170 recreatedLogFile.log

Pemformatan kami (termasuk jumlah baris) dipertahankan dalam file yang dibuat.

Jika Anda baru mengenal Linux, saya harap tutorial ini membantu Anda memahami perintah split. Jika Anda lebih berpengalaman, beri tahu kami cara favorit Anda menggunakan split di komentar di bawah!

Pemula atau berpengalaman, saya sarankan Anda juga melihat perintah csplit yang merupakan cara yang sedikit lebih baik untuk membagi file di baris perintah Linux.


Linux
  1. 12 Contoh Perintah Wget yang Berguna di Linux

  2. 5 Contoh Praktis Perintah dd di Linux

  3. Cara Menggunakan Perintah id di Linux:5 Contoh Berguna

  1. Perintah mv di Linux:7 Contoh Penting

  2. 14 Contoh Perintah "cat" yang Berguna di Linux

  3. File Contoh Perintah di Linux

  1. ls Perintah di Linux:17 Contoh yang Berguna Dijelaskan

  2. Contoh Penting dari Perintah File di Linux

  3. ln Contoh Perintah di Linux