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 inicut
menampilkan semua byte, karakter, atau bidang kecuali yang dipilih.-s
(--only-delimited
) - Secara defaultcut
mencetak baris yang tidak mengandung karakter pembatas. Saat opsi ini digunakan,cut
tidak mencetak baris yang tidak mengandung pembatas.--output-delimiter
- Perilaku defaultcut
adalah 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:
N
bidang, byte, atau karakter ke-N, mulai dari 1.N-
dari bidang ke-N, byte atau karakter, hingga akhir baris.N-M
dari bidang ke-N hingga ke-M, byte, atau karakter.-M
dari 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.