Perintah split and join Linux sangat membantu saat Anda memanipulasi file besar. Artikel ini menjelaskan cara menggunakan perintah split and join Linux dengan contoh deskriptif.
Gabung dan pisahkan sintaks perintah:
gabung [OPTION]… FILE1 FILE2
split [OPTION]… [INPUT [PREFIX]]
Contoh Perintah Split Linux
1. Contoh Pemisahan Dasar
Berikut adalah contoh dasar perintah split.
$ split split.zip $ ls split.zip xab xad xaf xah xaj xal xan xap xar xat xav xax xaz xbb xbd xbf xbh xbj xbl xbn xaa xac xae xag xai xak xam xao xaq xas xau xaw xay xba xbc xbe xbg xbi xbk xbm xbo
Jadi kita melihat bahwa file split.zip dipecah menjadi file yang lebih kecil dengan x** sebagai nama file. Di mana ** adalah akhiran dua karakter yang ditambahkan secara default. Selain itu, secara default setiap file x** akan berisi 1000 baris.
$ wc -l * 40947 split.zip 1000 xaa 1000 xab 1000 xac 1000 xad 1000 xae 1000 xaf 1000 xag 1000 xah 1000 xai ... ... ...
Jadi output di atas mengkonfirmasi bahwa secara default setiap file x** berisi 1000 baris.
2.Ubah Panjang Sufiks menggunakan opsi -a
Seperti yang dibahas pada contoh 1 di atas, panjang sufiks default adalah 2. Tapi ini dapat diubah dengan menggunakan opsi -a.
Seperti yang Anda lihat dalam contoh berikut, ia menggunakan akhiran dengan panjang 5 pada file yang dipisah.
$ split -a5 split.zip $ ls split.zip xaaaac xaaaaf xaaaai xaaaal xaaaao xaaaar xaaaau xaaaax xaaaba xaaabd xaaabg xaaabj xaaabm xaaaaa xaaaad xaaaag xaaaaj xaaaam xaaaap xaaaas xaaaav xaaaay xaaabb xaaabe xaaabh xaaabk xaaabn xaaaab xaaaae xaaaah xaaaak xaaaan xaaaaq xaaaat xaaaaw xaaaaz xaaabc xaaabf xaaabi xaaabl xaaabo
Catatan:Sebelumnya kami juga membahas tentang utilitas manipulasi file lainnya – tac, rev, paste.
3.Sesuaikan Ukuran File Terpisah menggunakan opsi -b
Ukuran setiap file split keluaran dapat dikontrol menggunakan opsi -b.
Dalam contoh ini, file split dibuat dengan ukuran 200000 byte.
$ split -b200000 split.zip $ ls -lart total 21084 drwxrwxr-x 3 himanshu himanshu 4096 Sep 26 21:20 .. -rw-rw-r-- 1 himanshu himanshu 10767315 Sep 26 21:21 split.zip -rw-rw-r-- 1 himanshu himanshu 200000 Sep 26 21:35 xad -rw-rw-r-- 1 himanshu himanshu 200000 Sep 26 21:35 xac -rw-rw-r-- 1 himanshu himanshu 200000 Sep 26 21:35 xab -rw-rw-r-- 1 himanshu himanshu 200000 Sep 26 21:35 xaa -rw-rw-r-- 1 himanshu himanshu 200000 Sep 26 21:35 xah -rw-rw-r-- 1 himanshu himanshu 200000 Sep 26 21:35 xag -rw-rw-r-- 1 himanshu himanshu 200000 Sep 26 21:35 xaf -rw-rw-r-- 1 himanshu himanshu 200000 Sep 26 21:35 xae -rw-rw-r-- 1 himanshu himanshu 200000 Sep 26 21:35 xar ... ... ...
4. Buat File Split dengan Sufiks Numerik menggunakan opsi -d
Seperti yang terlihat pada contoh di atas, output memiliki format x** di mana ** adalah alfabet. Anda dapat mengubahnya menjadi angka menggunakan opsi -d.
Berikut adalah contoh. Ini memiliki akhiran numerik pada file split.
$ split -d split.zip $ ls split.zip x01 x03 x05 x07 x09 x11 x13 x15 x17 x19 x21 x23 x25 x27 x29 x31 x33 x35 x37 x39 x00 x02 x04 x06 x08 x10 x12 x14 x16 x18 x20 x22 x24 x26 x28 x30 x32 x34 x36 x38 x40
5. Sesuaikan Jumlah Potongan Split menggunakan opsi -C
Untuk mengontrol jumlah potongan, gunakan opsi -C.
Contoh ini akan membuat 50 potongan file terpisah.
$ split -n50 split.zip $ ls split.zip xac xaf xai xal xao xar xau xax xba xbd xbg xbj xbm xbp xbs xbv xaa xad xag xaj xam xap xas xav xay xbb xbe xbh xbk xbn xbq xbt xbw xab xae xah xak xan xaq xat xaw xaz xbc xbf xbi xbl xbo xbr xbu xbx
6. Hindari Potongan Berukuran Nol menggunakan opsi -e
Saat membelah file yang relatif kecil dalam jumlah besar potongan, baik untuk menghindari potongan berukuran nol karena mereka tidak menambah nilai apapun. Ini dapat dilakukan dengan menggunakan opsi -e.
Ini contohnya:
$ split -n50 testfile $ ls -lart x* -rw-rw-r-- 1 himanshu himanshu 0 Sep 26 21:55 xag -rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:55 xaf -rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:55 xae -rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:55 xad -rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:55 xac -rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:55 xab -rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:55 xaa -rw-rw-r-- 1 himanshu himanshu 0 Sep 26 21:55 xbx -rw-rw-r-- 1 himanshu himanshu 0 Sep 26 21:55 xbw -rw-rw-r-- 1 himanshu himanshu 0 Sep 26 21:55 xbv ... ... ...
Jadi kita melihat bahwa banyak potongan ukuran nol diproduksi di output di atas. Sekarang, mari gunakan opsi -e dan lihat hasilnya:
$ split -n50 -e testfile $ ls split.zip testfile xaa xab xac xad xae xaf $ ls -lart x* -rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:57 xaf -rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:57 xae -rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:57 xad -rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:57 xac -rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:57 xab -rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:57 xaa
Jadi kita melihat bahwa tidak ada potongan berukuran nol yang dihasilkan pada output di atas.
7. Sesuaikan Jumlah Baris menggunakan opsi -l
Jumlah baris per output file split dapat dikustomisasi menggunakan opsi -l.
Seperti yang terlihat pada contoh di bawah ini, file split dibuat dengan 20000 baris.
$ split -l20000 split.zip $ ls split.zip testfile xaa xab xac $ wc -l x* 20000 xaa 20000 xab 947 xac 40947 total
Dapatkan Informasi Detail menggunakan opsi –verbose
Untuk mendapatkan pesan diagnostik setiap kali file split baru dibuka, gunakan opsi –verbose seperti yang ditunjukkan di bawah ini.
$ split -l20000 --verbose split.zip creating file `xaa' creating file `xab' creating file `xac'
Contoh Perintah Bergabung dengan Linux
8. Contoh Gabung Dasar
Perintah join bekerja pada field pertama dari dua file (disediakan sebagai input) dengan mencocokkan field pertama.
Ini contohnya :
$ cat testfile1 1 India 2 US 3 Ireland 4 UK 5 Canada $ cat testfile2 1 NewDelhi 2 Washington 3 Dublin 4 London 5 Toronto $ join testfile1 testfile2 1 India NewDelhi 2 US Washington 3 Ireland Dublin 4 UK London 5 Canada Toronto
Jadi kita melihat bahwa file yang berisi negara digabungkan dengan file lain yang berisi huruf kapital berdasarkan kolom pertama.
9. Bergabunglah dengan karya di Daftar Terurut
Jika salah satu dari dua file yang disediakan untuk bergabung dengan perintah tidak diurutkan maka akan muncul peringatan di output dan entri tertentu tidak bergabung.
Dalam contoh ini, karena file input tidak diurutkan, maka akan muncul pesan peringatan/kesalahan.
$ cat testfile1 1 India 2 US 3 Ireland 5 Canada 4 UK $ cat testfile2 1 NewDelhi 2 Washington 3 Dublin 4 London 5 Toronto $ join testfile1 testfile2 1 India NewDelhi 2 US Washington 3 Ireland Dublin join: testfile1:5: is not sorted: 4 UK 5 Canada Toronto
10. Abaikan Kasus menggunakan opsi -i
Saat membandingkan bidang, perbedaan huruf besar/kecil dapat diabaikan menggunakan opsi -i seperti yang ditunjukkan di bawah ini.
$ cat testfile1 a India b US c Ireland d UK e Canada $ cat testfile2 a NewDelhi B Washington c Dublin d London e Toronto $ join testfile1 testfile2 a India NewDelhi c Ireland Dublin d UK London e Canada Toronto $ join -i testfile1 testfile2 a India NewDelhi b US Washington c Ireland Dublin d UK London e Canada Toronto
11. Verifikasi bahwa Input Diurutkan menggunakan opsi –check-order
Berikut adalah contoh. Karena testfile1 tidak disortir menjelang akhir, maka terjadi kesalahan pada output.
$ cat testfile1 a India b US c Ireland d UK f Australia e Canada $ cat testfile2 a NewDelhi b Washington c Dublin d London e Toronto $ join --check-order testfile1 testfile2 a India NewDelhi b US Washington c Ireland Dublin d UK London join: testfile1:6: is not sorted: e Canada
12. Jangan Centang Sortir menggunakan opsi –nocheck-order
Ini kebalikan dari contoh sebelumnya. Tidak ada pemeriksaan sortir yang dilakukan dalam contoh ini, dan tidak akan menampilkan pesan kesalahan apa pun.
$ join --nocheck-order testfile1 testfile2 a India NewDelhi b US Washington c Ireland Dublin d UK London
13. Cetak Garis yang Tidak Dapat Dipasangkan menggunakan opsi -a
Jika kedua file input tidak dapat dipetakan satu per satu maka melalui opsi -a[FILENUM] kita dapat memiliki garis-garis yang tidak dapat dipasangkan saat membandingkan. FILENUM adalah nomor file (1 atau 2).
Dalam contoh berikut, kita melihat bahwa menggunakan -a1 menghasilkan baris terakhir di testfile1 (ditandai dengan huruf tebal di bawah) yang tidak memiliki pasangan di testfile2.
$ cat testfile1 a India b US c Ireland d UK e Canada f Australia $ cat testfile2 a NewDelhi b Washington c Dublin d London e Toronto $ join testfile1 testfile2 a India NewDelhi b US Washington c Ireland Dublin d UK London e Canada Toronto $ join -a1 testfile1 testfile2 a India NewDelhi b US Washington c Ireland Dublin d UK London e Canada Toronto f Australia
14. Cetak Hanya Garis Tidak Berpasangan menggunakan opsi -v
Dalam contoh di atas, baik garis berpasangan dan tidak berpasangan dihasilkan dalam output. Tetapi, jika hanya output yang tidak berpasangan yang diinginkan, gunakan opsi -v seperti yang ditunjukkan di bawah ini.
$ join -v1 testfile1 testfile2 f Australia
15. Gabung Berdasarkan Kolom Berbeda dari Kedua File menggunakan opsi -1 dan -2
Secara default kolom pertama di kedua file digunakan untuk membandingkan sebelum bergabung. Anda dapat mengubah perilaku ini menggunakan opsi -1 dan -2.
Pada contoh berikut, kolom pertama testfile1 dibandingkan dengan kolom kedua testfile2 untuk menghasilkan output perintah join.
$ cat testfile1 a India b US c Ireland d UK e Canada $ cat testfile2 NewDelhi a Washington b Dublin c London d Toronto e $ join -1 1 -2 2 testfile1 testfile2 a India NewDelhi b US Washington c Ireland Dublin d UK London e Canada Toronto