GNU/Linux >> Belajar Linux >  >> Linux

Urutkan Perintah di Linux dengan Contoh

Perintah sort digunakan di sistem Linux dan Unix untuk mengatur isi file dalam urutan tertentu. Dengan menggunakan perintah sort, Anda mengurutkan baris, alfabet, dan numerik dalam sebuah file.

Perintah sortir memiliki banyak opsi berguna untuk membalik urutan, mengurutkan file secara numerik, menyortir tabel berdasarkan nomor kolom, memeriksa apakah file sudah diurutkan dan menghapus duplikat.

Dalam tutorial ini, kita belajar tentang perintah sort di Linux dengan beberapa contoh praktis.

Urutkan Perintah dan sintaksnya

Baris berikut menunjukkan sintaks perintah sortir:

sort [options] [files]

Dibutuhkan input dari STDIN secara default tetapi dapat mengurutkan file ketika nama file diberikan sebagai argumen dan juga dapat mengurutkan secara numerik.

Perintah sortir dapat dipanggil dengan mengetikkan sort di terminal. Kemudian akan meminta input dari STDIN. Setelah memasukkan STDIN, ctrl+d dimasukkan untuk menandai akhir input.

Output berikut menunjukkan data input dari STDIN disusun ulang dalam urutan abjad.

$ sort
cappa
beta
delta
theta
alpha

alpha
beta
cappa
delta
theta

Mengurutkan file

Secara default, sort memperlakukan semua karakter sebagai karakter string. Karakter numerik juga diperlakukan sebagai karakter.

Pertama, kita membuat file dengan data numerik untuk diurutkan. Perintah berikut membuat file 'numeric.txt' dengan data numerik:

$ cat > numeric.txt
01
10
25
83
502
111

Sekarang, mari kita urutkan file 'numeric.txt' sebagai berikut:

$ sort numeric.txt
01
10
111
25
502
83

Output yang ditunjukkan di atas bukanlah yang biasanya kita harapkan. Tentu saja, 111 lebih besar dari 25 dan 502 juga lebih besar dari 83. Tetapi jika Anda melihat lebih dekat, nomor tersebut diurutkan dalam urutan kamus.

Misalnya, untuk 111 dan 25, bandingkan karakter pertama, 1 mendahului 2. Oleh karena itu, 111 ditempatkan sebelum 25.

Sekarang mari kita periksa bagaimana mengurutkan ketika konten adalah abjad atau kata-kata. File 'wordlist.txt' berikut berisi kata-kata yang dimulai dengan huruf besar dan huruf kecil dan menampilkan daftar yang diurutkan:

$ sort wordlist.txt
Aeroplane
ant
apple
bark
born
Box
Cat
tom
welcome

Opsi pengurutan

Perintah sortir hadir dengan opsi yang cukup bagus untuk memesan konten file. Mari kita bahas beberapa di antaranya sebagai berikut:

urutkan -n :Untuk mengurutkan file secara numerik.
urutkan -u :Menekan baris yang mengulang kunci sebelumnya.
urutkan -k :Mengurutkan tabel berdasarkan nomor kolom.
urutkan -t SEP:Gunakan pemisah yang disediakan untuk mengidentifikasi bidang.
urutkan -M :Urutkan sesuai bulan kalender yang ditentukan.
urutkan -b :Abaikan bagian yang kosong di awal baris.
urutkan -r :Mengurutkan dalam urutan terbalik.
urutkan -o :Keluaran ke file baru.

Urutkan file secara numerik (-n Option)

Jika kita ingin mengurutkan isi di dalam sebuah file secara numerik, kita menggunakan -n pilihan.

Pada contoh berikut, file 'numeric.txt' berisi angka dan data diurutkan dalam urutan numerik:

$ sort -n numeric.txt
01
10
25
83
111
502

Untuk membalik nomor dalam file, Anda menggunakan kombinasi -nr pilihan.

Misalnya:

$ sort -nr numeric.txt
502
111
83
25
10
01

Urutkan dan hapus baris duplikat (-u Option)

Untuk mengurutkan dan menghapus baris duplikat dari file gunakan -u pilihan. Perintah pertama akan menampilkan isi file duplikat.txt menggunakan perintah cat dan kedua kita akan menggunakan -u opsi untuk menghapus baris duplikat.

Contoh:

$ cat duplicate.txt
hello
linux
lInux
Linux
raghu
world
zzz
zzz

Contoh keluaran di mana Anda dapat melihat baris duplikat dihapus file 'duplicate.txt':

$ sort -u duplicate.txt
hello
linux
lInux
Linux
raghu
world
zzz

Urutkan dan Abaikan Huruf Besar (-f Option)

Seperti banyak alat Linux dan Unix lainnya, perintah sortir peka huruf besar-kecil secara default. Tetapi jika kita perlu mengabaikan kasus ini, kita dapat menggunakan -f atau --ignore-case pilihan.

Misalnya, di 'duplicate.txt', ada tiga contoh kata 'linux' dalam kasus yang berbeda. Secara default, semuanya dicetak dengan -u pilihan. Itu berarti mereka tidak unik untuk perintah sort.

Tapi jika kita menggunakan -f pilihan itu akan diabaikan seperti yang ditunjukkan di bawah ini:

$ sort -f -u duplicate.txt
hello
linux
raghu
world
zzz

Urutkan menurut kolom (-k Option)

Perintah sort dapat mengurutkan tabel apa pun menggunakan nomor kolom menggunakan -k pilihan. Misalnya gunakan '-k3' untuk mengurutkan kolom ketiga dalam tabel.

Mari kita pertimbangkan kita memiliki daftar isi dalam file 'population.txt' sebagai berikut:

$ cat population.txt
Kids 500 India
Youth 400 England
Senior 600 USA
Junior 9000 Australia
Pensioners 650 China

Berikut ini kita urutkan tabel menggunakan kolom nomor 2 pada file population.txt:

$ sort -k2 population.txt
Youth 400 England
Kids 500 India
Senior 600 USA
Pensioners 650 China
Junior 9000 Australia

Urutkan beberapa kolom

Dalam beberapa situasi, Anda mungkin perlu mengurutkan tabel menggunakan beberapa kolom. Mari kita ambil contoh file yang berisi banyak kolom data.

Berikut file 'columns.txt' berisi beberapa kolom seperti yang tercantum:

cat columns.txt
version1.2    10  25
version1.2    30  50
version1.1    10  30
version1.1    40  50
version1.2    40  50
version1.1    10  20
version1.1    5   8

Sekarang periksa perintah untuk mengurutkan kolom 1, 2 dan 3 dalam urutan numerik.

$ sort -k1,1 -k2,2n -k3,3n columns.txt
version1.1    5   8
version1.1    10  20
version1.1    10  30
version1.1    40  50
version1.2    10  25
version1.2    30  50
version1.2    40  50

Urutkan menurut pemisah kolom kolom (Opsi pembatas -t)

Secara default, pembatas untuk kolom adalah spasi atau tab. Tapi kita bisa menggunakan pembatas khusus menggunakan -t atau --field-separator opsi dalam pengurutan.

Mari kita ambil contoh, gunakan titik dua (:) sebagai pembatas dan file '/etc/passwd' untuk mengurutkan.

Jika kita ingin mengurutkan file /etc/passwd berdasarkan UID, kita menggunakan perintah berikut:

$ sort -n -t ':' -k3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
<---output truncated--->

Urutkan berdasarkan bulan (-M Option)

Menggunakan -M opsi yang dapat Anda urutkan berdasarkan bulan. Jika Anda memiliki file dengan bulan, urutkan urutan perintah berdasarkan bulan.

Misalnya, file 'months.txt' berisi daftar nama bulan.

$ cat months.txt
sep
august
july
dec
feb
may
jan

Kami sekarang akan menggunakan opsi -M untuk mengurutkan file 'months.txt' berdasarkan bulan.

$ sort -M months.txt
jan
feb
may
july
august
sep
dec

Urutkan angka yang dapat dibaca manusia (-h Option)

Sort dapat mengurutkan numerik yang dapat dibaca manusia seperti 2K, 5G, 3M menggunakan -h atau --human-numeric-sort pilihan.

Misalnya, di bawah daftar file nomor yang dapat dibaca manusia

$ cat human_numeric.txt
4G
2K
3M
1G
34K
52M
200M

Perintah berikut gunakan -h opsi untuk membandingkan dan mengurutkan angka yang dapat dibaca manusia.

$ sort -h human_numeric.txt
2K
34K
3M
52M
200M
1G
4G

Periksa input yang diurutkan (-c Option)

Perintah sort dapat memeriksa apakah input sudah diurutkan atau tidak menggunakan -c pilihan. Jika tidak diurutkan, ia mengembalikan baris pertama yang tidak disortir.

$ sort -c /etc/passwd
sort: /etc/passwd:2: disorder: daemon:x:1:1:daemon:/usr/sbin:/bin/sh

Tidak ada yang dicetak untuk input yang diurutkan:

$ sort /etc/passwd | sort -c
$ echo $?
0

Urutkan dengan perintah lain

Sortir adalah alat pemrosesan teks, sehingga dapat digunakan dengan memasukkan beberapa input dari perintah lain.

Pada perintah berikut kita menggunakan output perintah tail sebagai input untuk pengurutan:

$ tail /etc/passwd | sort
altair:x:1001:1001:Altair Ibn La Ahad,,,,:/home/altair:/bin/bash
bind:x:120:132::/var/cache/bind:/bin/false
dnsmasq:x:121:65534:dnsmasq,,,:/var/lib/misc:/bin/false
mysql:x:115:129:MySQL Server,,,:/nonexistent:/bin/false
postfix:x:105:126::/var/spool/postfix:/bin/false
raghu:x:1000:1000:raghu,,,:/home/raghu:/bin/bash
smmsp:x:119:131:Mail Submission Program,,,:/var/lib/sendmail:/bin/false
smmta:x:118:130:Mail Transfer Agent,,,:/var/lib/sendmail:/bin/false
sshd:x:117:65534::/var/run/sshd:/usr/sbin/nologin
statd:x:116:65534::/var/lib/nfs:/bin/false

Penyortiran dapat dibalik dengan opsi -r.

Mari kita ambil contoh lain untuk mengurutkan output perintah du dalam format yang dapat dibaca manusia berdasarkan ukuran, gunakan perintah berikut:

$ du -h | sort -h

Kesimpulan

Dalam tutorial ini, kita belajar tentang Linux sort dan opsinya untuk mengurutkan konten file. Saya harap Anda menikmati membaca dan beri komentar di bawah jika Anda menemukan contoh lain.


Linux
  1. Perintah JQ di Linux dengan Contoh

  2. File Contoh Perintah di Linux

  3. urutkan Contoh Perintah di Linux

  1. Perintah wc Linux dengan Contoh

  2. Perintah sortir Linux dengan Contoh

  3. ln Contoh Perintah di Linux

  1. 10 Perintah Cepat Linux Tail dengan Contoh

  2. Perintah ip Linux dengan Contoh

  3. 15 Perintah Linux ps dengan Contoh