GNU/Linux >> Belajar Linux >  >> Linux

Perintah Potong Linux dengan Contoh Praktis

Perintah cut digunakan di sistem Linux dan Unix untuk memotong bagian dan bagian dari setiap baris file dan menulis hasilnya ke output standar. Hal ini dapat digunakan untuk memotong bagian dari baris dengan posisi byte, karakter dan bidang (pembatas).

Dalam tutorial ini, kita mempelajari perintah Linux cut dengan beberapa contoh praktis yang dapat Anda gunakan dalam aktivitas baris perintah sehari-hari.

Memotong Perintah dan Sintaks

Sintaks dasar untuk perintah cut adalah sebagai berikut:

cut OPTION... [FILE]... 

Mari kita periksa opsi potong dan tanpa opsi apa pun, perintah potong tidak akan berfungsi.

Opsi Potong

-f :Ekstrak dengan menentukan bidang. Perintah Cut menggunakan 'TAB' sebagai pembatas bidang default.

-d :'Tab' adalah pembatas default dan menggunakan opsi ini Anda dapat menggunakan pembatas tertentu.

-b :Untuk mengekstrak dengan menentukan byte. Rentang byte juga dapat ditentukan.

-c :Untuk memotong berdasarkan karakter. Ini bisa berupa daftar angka yang dipisahkan koma atau rentang angka yang dipisahkan oleh tanda hubung (-).

–complement :Ini akan melengkapi pilihan

–output-delimiter :Untuk mengubah pembatas keluaran gunakan opsi -output-delimiter='delimiter'.

--only-delimited :Cut tidak akan mencetak garis yang tidak mengandung pembatas

Kami akan menggunakan file teks berikut bernama 'content.txt' dan file /etc/passwd sepanjang tutorial ini untuk mengilustrasikan contoh kami.

$ cat content.txt 
Ubuntu Linux
Microsoft Windows
OsX El Capitan
Unix
FreeBSD 

Cara memotong dengan pembatas

Opsi potong yang paling umum digunakan adalah kombinasi -d dan -f . Ini pada dasarnya akan mengekstrak konten berdasarkan pembatas tertentu dan bidang yang terdaftar.

Misalnya berikut ini hanya mencetak bidang pertama dari setiap baris dari file '/etc/passwd' menggunakan pembatas (:).

$ cut -d':' -f1 /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
... 

Contoh berikut di mana kita menggunakan spasi (" ") sebagai pembatas dan memotong bidang 1 dari file bernama 'content.txt'.

$ cut -d " " -f 1 content.txt 
Ubuntu
Microsoft
OsX
Unix
FreeBSD
 

Contoh ini, mengekstrak lebih dari satu bidang dari file tertentu. Disini kita ekstrak field 1 dan 6 menggunakan pembatas titik dua (:) dari file '/etc/passwd' yang memiliki string '/bin/bash':

$ grep "/bin/bash" /etc/passwd | cut -d':' -f1,6
root:/root
slax:/home/slax
 

Untuk menampilkan range field, tentukan field awal dan field akhir yang dipisahkan dengan tanda hubung (-) seperti yang ditunjukkan di bawah ini:

$ grep "/bin/bash" /etc/passwd | cut -d':' -f1-4,6,7
root:x:0:0:/root:/bin/bash
slax:x:1000:1000:/home/slax:/bin/bash
 

Cara melengkapi pilihan keluaran

Untuk melengkapi daftar bidang pilihan gunakan --complement pilihan. Opsi ini digunakan untuk memilih semua bidang kecuali bidang yang ditentukan.

Dalam contoh berikut perintah mencetak semua bidang kecuali bidang ke-2 dalam file dari '/etc/passwd':

$ grep "/bin/bash" /etc/passwd | cut -d':' --complement -f2
root:0:0:root:/root:/bin/bash
 

Cara menentukan pembatas keluaran

Untuk menentukan pembatas keluaran gunakan --output-delimiter pilihan. Pembatas input ditentukan oleh -d opsi dan secara default pembatas output sama dengan pembatas input.

Mari kita periksa outputnya terlebih dahulu tanpa menggunakan pembatas output sebagai berikut:

$  cut -d: -f1,7  /etc/passwd |  sort |  uniq -u
_apt:/usr/sbin/nologin
backup:/usr/sbin/nologin
bin:/usr/sbin/nologin
daemon:/usr/sbin/nologin
dnsmasq:/usr/sbin/nologin
games:/usr/sbin/nologin
gnats:/usr/sbin/nologin
irc:/usr/sbin/nologin
landscape:/usr/sbin/nologin
list:/usr/sbin/nologin
lp:/usr/sbin/nologin
lxd:/bin/false 

Sekarang saya telah menambahkan --output-delimiter option dan pembatas input titik dua (:) diganti dengan pembatas output 'SPACE" sebagai berikut:

$  cut -d: -f1,7 --output-delimiter ' ' /etc/passwd |  sort |  uniq -u
_apt /usr/sbin/nologin
backup /usr/sbin/nologin
bin /usr/sbin/nologin
daemon /usr/sbin/nologin
dnsmasq /usr/sbin/nologin
games /usr/sbin/nologin
gnats /usr/sbin/nologin
irc /usr/sbin/nologin
landscape /usr/sbin/nologin
list /usr/sbin/nologin
lp /usr/sbin/nologin
lxd /bin/false 

Mari kita periksa contoh lain, di sini kita menggunakan pembatas keluaran untuk mencetak pada setiap bidang dalam baris baru.

Di sini kita menggunakan --output-delimiter sebagai $’\n’ yang menunjukkan baris baru.

Periksa outputnya:

$ grep root /etc/passwd | cut -d':' -f1,6,7 --output-delimiter= 

Cara memotong per karakter

-c (kolom) opsi digunakan untuk memotong berdasarkan posisi karakter. Ingat bahwa 'TABS" dan 'Spasi' juga diperlakukan sebagai karakter.

Untuk mencetak karakter pertama dari setiap baris dari file bernama content.txt, gunakan di bawah ini:

$ cut -c 1 content.txt
U
M
O
U
F
 

Pada contoh berikut kita akan menampilkan karakter 1 sampai 7 (range) setiap baris dari file:

$ cut -c 1-7 content.txt
Ubuntu
Microso
OsX El
Unix
FreeBSD 

Mari kita periksa cara memilih kolom berdasarkan posisi awal atau akhir tertentu.

Untuk mengekstrak kolom dari karakter ke-2 hingga karakter terakhir:

$ cut -c2- content.txt
buntu Linux
icrosoft Windows
sX El Capitan
nix
reeBSD
 

Untuk mengekstrak kolom dari karakter pertama ke karakter keempat:

cut -c-4 content.txt
Ubun
Micr
OsX
Unix
Free 

Cara memotong per byte

Gunakan -b opsi untuk memilih bagian dari baris dengan menentukan posisi byte dengan angka yang dipisahkan oleh koma (,). Dengan menggunakan tanda hubung, Anda dapat menentukan rentang byte.

Contoh berikut dipotong dari byte ke-1, ke-2 dan ke-3 dari file bernama 'content.txt':

$ cut -b 1,2,3 content.txt 
Ubu
Mic
OsX
Uni
Fre 

Kami juga dapat membuat daftar dengan rentang menggunakan perintah di bawah ini:

$ cut -b 1-3,5-7 content.txt 
Ubutu 
Micoso
OsXEl 
Uni
FreBSD
 

Beberapa contoh potongan praktis

Cut paling praktis digunakan dengan kombinasi perintah Linux atau Unix yang berbeda.

Misalnya, Anda ingin mengekstrak 'USER', 'PID' dan "COMMAND" menggunakan perintah ps:

 ps -L u n | tr -s " " | cut -d " " -f 2,3,14-
USER PID COMMAND
0 676 /sbin/agetty -o -p -- \u --keep-baud 115200,38400,9600 ttyS0 vt220
0 681 /sbin/agetty -o -p -- \u --noclear tty1 linux
0 23174 -bash
0 26737 ps -L u n
0 26738 tr -s
0 26739 cut -d -f 2,3,14- 

Mari kita ambil contoh lain untuk mengekstrak nilai memori 'total', 'bekas' dan 'bebas' dan menyimpan ke file teks menggunakan beberapa perintah:

$ free -m | tr -s ' ' | sed '/^Mem/!d' | cut -d" " -f2-4 >> memory.txt
Output
$ cat memory.txt
985 86 234 

Kesimpulan

Perintah cut dapat disalurkan dengan banyak perintah Linux atau Unix lainnya. Itu dapat disalurkan dengan satu atau beberapa filter untuk pemrosesan teks tambahan.

Salah satu keterbatasan perintah cut adalah tidak mendukung penetapan lebih dari satu karakter sebagai pembatas. Beberapa kosong dihitung sebagai beberapa pemisah bidang dan harus menggunakan perintah tr sebelum dipotong untuk mendapatkan hasil yang diinginkan.

\n' root /root /bin/bash operator /root /sbin/nologin 

Cara memotong per karakter

-c (kolom) opsi digunakan untuk memotong berdasarkan posisi karakter. Ingat bahwa 'TABS" dan 'Spasi' juga diperlakukan sebagai karakter.

Untuk mencetak karakter pertama dari setiap baris dari file bernama content.txt, gunakan di bawah ini:

  

Pada contoh berikut kita akan menampilkan karakter 1 sampai 7 (range) setiap baris dari file:

  

Mari kita periksa cara memilih kolom berdasarkan posisi awal atau akhir tertentu.

Untuk mengekstrak kolom dari karakter ke-2 hingga karakter terakhir:

  

Untuk mengekstrak kolom dari karakter pertama ke karakter keempat:

  

Cara memotong per byte

Gunakan -b opsi untuk memilih bagian dari baris dengan menentukan posisi byte dengan angka yang dipisahkan oleh koma (,). Dengan menggunakan tanda hubung, Anda dapat menentukan rentang byte.

Contoh berikut dipotong dari byte ke-1, ke-2 dan ke-3 dari file bernama 'content.txt':

  

Kami juga dapat membuat daftar dengan rentang menggunakan perintah di bawah ini:

  

Beberapa contoh potongan praktis

Cut paling praktis digunakan dengan kombinasi perintah Linux atau Unix yang berbeda.

Misalnya, Anda ingin mengekstrak 'USER', 'PID' dan "COMMAND" menggunakan perintah ps:

  

Mari kita ambil contoh lain untuk mengekstrak nilai memori 'total', 'bekas' dan 'bebas' dan menyimpannya ke file teks menggunakan beberapa perintah:

  

Kesimpulan

Perintah cut dapat disalurkan dengan banyak perintah Linux atau Unix lainnya. Itu dapat disalurkan dengan satu atau lebih filter untuk pemrosesan teks tambahan.

Salah satu keterbatasan perintah cut adalah tidak mendukung penetapan lebih dari satu karakter sebagai pembatas. Beberapa kosong dihitung sebagai beberapa pemisah bidang dan harus menggunakan perintah tr sebelum dipotong untuk mendapatkan hasil yang diinginkan.


Linux
  1. Cara Menggunakan Perintah Hexdump Linux dengan Contoh Praktis

  2. 10 Contoh Perintah Potong Linux Praktis untuk Memilih Kolom File

  3. Perintah rsync Linux dengan contoh praktis

  1. Perintah JQ di Linux dengan Contoh

  2. Linux – Menggabungkan /usr/bin Dan /usr/sbin Ke /bin (gnu/linux)?

  3. Instal binari ke /bin, /sbin, /usr/bin dan /usr/sbin, interaksi dengan --prefix dan DESTDIR

  1. Perintah wc Linux dengan Contoh

  2. potong Contoh Perintah di Linux

  3. Apa arti dari /usr/sbin, /usr/local/sbin dan /usr/local/bin?