Ada banyak utilitas yang tersedia di sistem Linux dan Unix yang memungkinkan Anda untuk memproses dan memfilter file teks. cut adalah utilitas baris perintah yang memungkinkan Anda untuk memotong bagian baris dari file tertentu atau data yang disalurkan dan mencetak hasilnya ke output standar. Ini dapat digunakan untuk memotong bagian dari garis dengan pembatas, posisi byte, dan karakter.
Pada artikel ini, kami akan menunjukkan cara menggunakan cut perintah melalui contoh-contoh praktis dan penjelasan rinci tentang opsi yang paling umum.
Cara Menggunakan cut Perintah #
Sintaks untuk cut perintahnya adalah sebagai berikut:
cut OPTION... [FILE]...
Opsi yang memberi tahu cut apakah akan menggunakan pembatas, posisi byte, atau karakter saat memotong bagian yang dipilih, garisnya adalah sebagai berikut:
-f(--fields=LIST) - Pilih dengan menentukan bidang, kumpulan bidang, atau rentang bidang. Ini adalah opsi yang paling umum digunakan.-b(--bytes=LIST) - Pilih dengan menentukan byte, kumpulan byte, atau rentang byte.-c(--characters=LIST) - Pilih dengan menentukan karakter, kumpulan karakter, atau rentang karakter.
Anda dapat menggunakan satu, dan hanya satu dari opsi yang tercantum di atas.
Pilihan lainnya adalah:
-d(--delimiter) - Tentukan pembatas yang akan digunakan sebagai pengganti pembatas “TAB” default.--complement- Melengkapi seleksi. Saat menggunakan opsi inicutmenampilkan semua byte, karakter, atau bidang kecuali yang dipilih.-s(--only-delimited) - Secara defaultcutmencetak baris yang tidak mengandung karakter pembatas. Saat opsi ini digunakan,cuttidak mencetak baris yang tidak mengandung pembatas.--output-delimiter- Perilaku defaultcutadalah dengan menggunakan pembatas input sebagai pembatas output. Opsi ini memungkinkan Anda untuk menentukan string pembatas keluaran yang berbeda.
cut perintah dapat menerima nol atau lebih masukan nama FILE. Jika tidak ada FILE ditentukan, atau ketika FILE adalah - , cut akan membaca dari input standar.
LIST argumen diteruskan ke -f , -b , dan -c opsi dapat berupa bilangan bulat, beberapa bilangan bulat yang dipisahkan dengan koma, rentang bilangan bulat, atau beberapa rentang bilangan bulat yang dipisahkan oleh koma. Setiap rentang dapat berupa salah satu dari berikut ini:
Nbidang, byte, atau karakter ke-N, mulai dari 1.N-dari bidang ke-N, byte atau karakter, hingga akhir baris.N-Mdari bidang ke-N hingga ke-M, byte, atau karakter.-Mdari yang pertama hingga bidang ke-M, byte, atau karakter.
Cara Memotong berdasarkan Bidang #
Untuk menentukan bidang yang harus dipotong, jalankan perintah dengan -f pilihan. Bila tidak ditentukan, pembatas default adalah “TAB”.
Dalam contoh di bawah ini, kita akan menggunakan file berikut. Bidang dipisahkan oleh tab.
test.txt245:789 4567 M:4540 Admin 01:10:1980
535:763 4987 M:3476 Sales 11:04:1978
Misalnya, untuk menampilkan bidang ke-1 dan ke-3, Anda akan menggunakan:
cut test.txt -f 1,3 245:789 M:4540
535:763 M:3476
Atau jika Anda ingin menampilkan dari bidang ke-1 hingga ke-4:
cut test.txt -f -4 245:789 4567 M:4540 Admin
535:763 4987 M:3476 Sales
Cara memotong berdasarkan pembatas #
Untuk memotong berdasarkan pembatas, jalankan perintah dengan -d pilihan, diikuti oleh pembatas yang ingin Anda gunakan.
Misalnya, untuk menampilkan bidang ke-1 dan ke-3 menggunakan “:” sebagai pembatas, Anda harus mengetik:
cut test.txt -d ':' -f 1,3 245:4540 Admin 01
535:3476 Sales 11
Anda dapat menggunakan karakter tunggal apa pun sebagai pembatas. Dalam contoh berikut, kami menggunakan karakter spasi sebagai pembatas dan mencetak bidang ke-2:
echo "Lorem ipsum dolor sit amet" | cut -d ' ' -f 2 ipsum
Cara melengkapi pilihan #
Untuk melengkapi daftar bidang pilihan gunakan --complement pilihan. Ini hanya akan mencetak bidang-bidang yang tidak dipilih dengan -f pilihan.
Perintah berikut akan mencetak semua bidang kecuali yang pertama dan ketiga:
cut test.txt -f 1,3 --complement 4567 Admin 01:10:1980
4987 Sales 11:04:1978
Cara menentukan pembatas keluaran #
Untuk menentukan pembatas keluaran gunakan --output-delimiter pilihan. Misalnya, untuk menyetel pembatas keluaran ke _ Anda akan menggunakan:
cut test.txt -f 1,3 --output-delimiter='_' 245:789_M:4540
535:763_M:3476
Cara Memotong Byte dan Karakter #
Sebelum melangkah lebih jauh, mari kita buat perbedaan antara byte dan karakter.
Satu byte adalah 8 bit dan dapat mewakili 256 nilai yang berbeda. Ketika standar ASCII ditetapkan, itu memperhitungkan semua huruf, angka, dan simbol yang diperlukan untuk bekerja dengan bahasa Inggris. Tabel karakter ASCII memiliki 128 karakter, dan setiap karakter diwakili oleh satu byte. Ketika komputer mulai dapat diakses secara global, perusahaan teknologi mulai memperkenalkan pengkodean karakter baru untuk berbagai bahasa. Untuk bahasa yang memiliki lebih dari 256 karakter, pemetaan 1 hingga 1 yang sederhana tidak dapat dilakukan. Hal ini menyebabkan masalah yang berbeda seperti berbagi dokumen atau menjelajahi situs web, dan diperlukan standar Unicode baru yang dapat menangani sebagian besar sistem penulisan dunia. UTF-8 diciptakan untuk memecahkan masalah ini. Dalam UTF-8, tidak semua karakter diwakili dengan 1 byte. Karakter dapat direpresentasikan dengan 1 byte hingga 4 byte.
-b (--bytes ) opsi memberitahu perintah untuk memotong bagian dari setiap baris yang ditentukan oleh posisi byte yang diberikan.
Dalam contoh berikut, kami menggunakan ü karakter yang membutuhkan 2 byte.
Pilih byte ke-5:
echo 'drüberspringen' | cut -b 5 b
Pilih byte ke-5, ke-9, dan ke-13:
echo 'drüberspringen' | cut -b 5,9,13 bpg
Pilih rentang dari byte ke-1 hingga ke-5:
echo 'drüberspringen' | cut -b 1-5 drüb
Pada saat penulisan artikel ini, versi cut dibundel dalam GNU coreutils tidak memiliki opsi untuk memotong karakter. Saat menggunakan -c pilihan, cut berperilaku sama seperti saat menggunakan -b pilihan.
Contoh Potong #
cut perintah biasanya digunakan dalam kombinasi dengan perintah lain melalui perpipaan. Berikut beberapa contohnya:
Dapatkan daftar semua pengguna #
Output dari getent passwd perintah diteruskan ke cut , yang mencetak bidang pertama menggunakan : sebagai pembatas.
getent passwd | cut -d ':' -f1 Outputnya menunjukkan daftar semua pengguna sistem.
Lihat 10 perintah yang paling sering digunakan #
Pada contoh berikut, cut digunakan untuk menghapus 8 byte pertama dari setiap baris history keluaran perintah.
history | cut -c8- | sort | uniq -c | sort -rn | head Kesimpulan #
cut perintah digunakan untuk menampilkan bidang yang dipilih dari setiap baris file yang diberikan atau input standar.
Meskipun sangat berguna, cut memiliki beberapa keterbatasan. Ini tidak mendukung penetapan lebih dari satu karakter sebagai pembatas dan tidak mendukung banyak pembatas.
Jika Anda memiliki pertanyaan atau masukan, jangan ragu untuk memberikan komentar.