Pendahuluan
cut
command adalah utilitas baris perintah yang memungkinkan Anda untuk memotong bagian dari file tertentu atau data yang disalurkan dan mencetak hasilnya ke output standar. Perintah tersebut memotong bagian dari baris demi bidang, pembatas, posisi byte, dan karakter.
Dalam tutorial ini, Anda akan mempelajari apa yang cut
perintah dan cara menggunakannya.
Prasyarat
- Sistem yang menjalankan Linux.
- Akses ke terminal.
potong Sintaks Perintah
cut
perintah mengambil sintaks berikut:
cut [option] [file]
Opsi
Menentukan [option]
diperlukan. Jika tidak, perintah akan menghasilkan kesalahan. Opsi yang tersedia dijelaskan di bagian berikut.
Berkas
Untuk [file]
, masukkan nama file yang ingin Anda proses. Tidak menentukan nama file menginstruksikan cut
perintah untuk membaca dari input standar, dalam hal ini cut
menyaring pipa. Jika Anda menentukan beberapa nama file, cut
perintah menggabungkan konten yang diminta.
potong Opsi Perintah
cut
opsi perintah memberikan instruksi tentang penggunaan pembatas, pemotongan berdasarkan posisi byte, bidang, atau karakter. Gunakan satu opsi untuk setiap cut
perintah yang Anda jalankan.
Opsi yang tersedia adalah:
Opsi | Deskripsi |
---|---|
-f (--fields=LIST) | Pilih menggunakan bidang tertentu, kumpulan bidang, atau rentang bidang. |
-b (--bytes=LIST) | Pilih menggunakan byte tertentu, kumpulan byte, atau rentang byte. |
-c (--characters=LIST) | Pilih menggunakan karakter tertentu, set karakter, atau rentang karakter. |
-d (--delimiter) | Digunakan untuk menentukan pembatas yang akan digunakan sebagai ganti pembatas TAB default. |
--complement | Bila ditentukan, opsi ini menginstruksikan cut untuk menampilkan semua byte, karakter, atau bidang, kecuali yang dipilih. |
-s (--only-delimited) | Pengaturan default adalah untuk mencetak baris yang tidak berisi karakter pembatas. Menentukan -s option menginstruksikan cut untuk tidak mencetak garis yang tidak mengandung pembatas. |
--output-delimiter | Secara default, cut menggunakan pembatas input sebagai pembatas output. Menentukan --output-delimiter opsi memungkinkan Anda untuk menentukan pembatas keluaran yang berbeda. |
-f
, b
, dan -c
opsi ambil LIST
argumen, yang merupakan salah satu dari berikut:
- Bilangan bulat
N
mewakili byte, bidang, atau karakter, mulai dari 1. - Beberapa bilangan bulat, dipisahkan koma.
- Rentang bilangan bulat.
- Beberapa rentang bilangan bulat, dipisahkan koma.
Setiap rentang dapat berupa salah satu dari berikut ini:
N-
- Mulai dari bilangan bulatN
(bidang, byte, atau karakter) hingga akhir baris.N-M
- Dari bilangan bulatN
hingga bilangan bulatM
, inklusif.-M
- Dari bidang, byte, atau karakter pertama, hinggaM
. yang ditentukan bidang, byte, atau karakter.
Contoh potongan Linux
Di bawah ini adalah cut
yang paling umum kasus penggunaan perintah.
Penting: Perhatikan lokasi file/output perintah yang Anda proses. Memotong karakter atau byte dalam bahasa selain bahasa Inggris dapat menghasilkan keluaran yang salah jika karakter yang dimaksud lebih panjang dari satu byte.
Dipotong berdasarkan Byte
-b
opsi memungkinkan Anda untuk mengekstrak data menggunakan byte. Sintaksnya adalah:
cut -b [LIST] [file]
[LIST]
argumen adalah byte untuk mengekstrak dari setiap baris [file]
.
Bergantung pada apa yang ingin Anda ekstrak, Anda dapat memotong satu byte, beberapa byte, atau rentang byte. Untuk memotong dari file tertentu, tentukan nama file di akhir perintah. Misalnya, kami akan menggunakan employees.txt untuk pengujian:
Untuk mengekstrak byte pertama dari setiap baris input, jalankan:
cut -b 1 employees.txt
Perintah hanya mencetak byte pertama dari setiap baris input file.
Contoh berikut menunjukkan cara menyalurkan ke perintah who dan mengekstrak 5 byte pertama dari output:
who | cut -b -5
Dipotong oleh Karakter
Untuk memotong menurut karakter, tentukan -c
pilihan. Pemotongan menurut karakter mirip dengan pemotongan per byte, kecuali Anda perlu menentukan posisi karakter daripada posisi byte. Sintaksnya adalah:
cut -c [LIST] [file]
[LIST]
argumen menentukan karakter yang akan diekstraksi dari setiap baris [file]
.
Misalnya:
cut -c 10- employees.txt
Perintah mengekstrak semuanya dari karakter 10 hingga akhir baris dari setiap baris employees.txt . Hasilnya dicetak dalam keluaran standar.
Contoh berikut menunjukkan hasil ketika file tidak ditentukan dan cut
membaca inputnya dari input standar. Lihat who
keluaran perintah:
Output menunjukkan bahwa satu pengguna sedang login. Gunakan cut
perintah untuk mengekstrak nama pengguna pengguna yang masuk dari who
keluaran perintah:
who | cut -c 1-8
Pada contoh di atas, kami menginstruksikan cut
untuk mengekstrak karakter 1 hingga 8 dari setiap baris input. Jika beberapa hasil, urutkan hasil dengan menambahkan perintah dengan | sort
.
Selain itu, gunakan cut
untuk mengekstrak beberapa karakter berbeda dari satu baris. Misalnya, tampilkan nama pengguna dan waktu masuk semua pengguna yang masuk:
who | cut -c 1-8,18-
Potong Berdasarkan Pembatas
Jika bidang tidak dipisahkan oleh karakter tab default, gunakan -d
opsi untuk menentukan pembatas yang berbeda. Itu berarti karakter yang ditentukan setelah -d
opsi dianggap sebagai pemisah dalam garis. Sintaksnya adalah:
cut -d[delimiter] [file]
Sebagai pengganti [delimiter]
argumen, tentukan pembatas yang Anda inginkan. Anda dapat menggunakan karakter apa pun sebagai pembatas. Menggunakan cut
perintah untuk mengekstrak bidang dari file tanpa menentukan -d
option berarti pembatas default adalah karakter tab .
Dalam contoh berikut, kami menggunakan spasi putih sebagai pembatas dan mencetak bidang kedua:
echo "phoenixNAP is a global IT services provider" | cut -d ' ' -f 2
Dipotong menurut Bidang
Saat menyalurkan ke perintah yang outputnya tidak memiliki format tetap (mis., who
perintah), -c
pilihan tidak membantu. Menggunakan -f
opsi untuk memisahkan berdasarkan bidang adalah pilihan yang lebih baik dalam kasus itu.
Misalnya:
cut -f 2 employees.txt
Pada contoh di atas, kami menggunakan -f
opsi untuk mengekstrak bidang kedua dari employees.txt berkas.
Untuk memotong bidang tertentu dari file, tentukan pembatas yang berbeda. Misalnya, /etc/passwd
file output berisi semua pengguna di sistem Anda, nomor id, direktori home, dll.
Data di /etc/passwd
file tidak disejajarkan dengan cara yang sama seperti data di who
keluaran perintah. Dengan demikian, Anda tidak dapat mengekstrak semua pengguna di sistem dengan mengandalkan nomor karakter.
Namun, bidang di /etc/passwd
file dibatasi oleh titik dua. Oleh karena itu, hitung jumlah titik dua untuk mengekstrak bidang yang sama. Misalnya:
cut -d: -f1,6 /etc/passwd
Output mengembalikan setiap pengguna dalam sistem dan direktori home mereka, masing-masing sesuai dengan bidang 1 dan 6.
Melengkapi Pilihan
--complement
opsi mencetak semuanya kecuali karakter/byte/bidang pada posisi yang ditentukan. Misalnya, perintah berikut mencetak semua bidang kecuali yang pertama dan ketiga:
cut employees.txt -f 1 --complement
Tentukan Pembatas Keluaran
Saat menentukan beberapa karakter/byte/bidang, cut
perintah menggabungkan output tanpa pembatas. Tentukan pembatas dalam output menggunakan --output-delimiter
pilihan.
Misalnya, untuk menyetel pembatas keluaran ke _
(garis bawah), gunakan:
cut employees.txt -f 1,3 --output-delimiter='_'