Pendahuluan
sort
perintah adalah alat untuk menyortir isi file dan mencetak hasilnya dalam output standar. Mengurutkan ulang konten file secara numerik atau abjad dan mengatur informasi dalam urutan menaik atau menurun meningkatkan keterbacaan.
Dalam tutorial ini, Anda akan belajar menggunakan sort
Linux perintah dan lihat contoh yang berguna.
Prasyarat
- Sistem yang menjalankan Linux.
- Akses ke terminal.
Sintaks pengurutan Linux
sort
perintah memiliki sintaks berikut:
sort [options] filename
Menjalankan sort
perintah tanpa [options]
menampilkan konten file dan menerapkan aturan penyortiran default untuk lokal saat ini.
Aturan utamanya adalah:
- Baris yang dimulai dengan angka pergi sebelum baris yang dimulai dengan huruf , disusun dalam naik pesan (1-10).
- Garis yang dimulai dengan huruf diurutkan dalam naik urutan abjad (A-Z).
Misalnya, file berikut memiliki beberapa baris acak:
Jalankan sort
untuk mengatur isi file dengan cara default:
Contoh di atas menunjukkan bagaimana sort
perintah mengatur baris secara default ketika tidak ada opsi yang ditentukan.
Opsi pengurutan Linux
Tentukan opsi untuk mengubah sort
aturan pengurutan perintah. Opsi yang paling sering digunakan tercantum dalam tabel di bawah ini:
Bentuk opsi singkat | Bentuk opsi panjang | Deskripsi |
---|---|---|
-b | --ignore-leading-blanks | Penyebab sort untuk mengabaikan bagian yang kosong. |
-d | --dictionary-order | Penyebab sort untuk mempertimbangkan hanya karakter kosong dan alfanumerik. |
-f | --ignore-case | Mengabaikan aturan pengurutan huruf besar-kecil dan mengubah semua huruf kecil menjadi huruf besar sebelum perbandingan. |
/ | --files0-from=F | Membaca input dari file yang ditentukan oleh NUL -nama yang diakhiri dalam F . yang ditentukan mengajukan. Jika F adalah - , sort membaca nama dari input standar. |
-M | --month-sort | Mengurutkan baris menurut bulan (Jan-Des). |
-h | --human-numeric-sort | Membandingkan angka yang dapat dibaca manusia (mis., 2K 1G). |
-n | --numeric-sort | Membandingkan data menurut nilai numerik string. |
-R | --random-sort | Mengurutkan data berdasarkan kunci acak tetapi mengelompokkan kunci yang identik. |
/ | --random-source=FILE | Mendapatkan byte acak dari FILE yang ditentukan . |
-r | --reverse | Membalikkan hasil perbandingan. |
/ | --sort=WORD | Urutkan data sesuai dengan WORD yang ditentukan :-g . numerik umum , manusia-numerik -h , bulan -M , numerik -n , -R random acak , versi -V . |
-c | --check, --check=diagnose-first | Memeriksa apakah input sudah diurutkan tetapi tidak mengurutkannya. |
/ | --debug | Menganotasi bagian garis yang digunakan untuk menyortir. |
-k | --key=KEYDEF | Urutkan data menggunakan KEYDEF yang ditentukan , yang memberikan lokasi dan jenis kunci. |
-m | --merge | Penyebab sort untuk menggabungkan file yang sudah diurutkan. |
-o | --output=FILE | Mengalihkan output ke FILE alih-alih mencetaknya dalam keluaran standar. |
-t | --field-separator=SEP | Menggunakan SEP yang ditentukan pemisah alih-alih transisi tidak kosong ke kosong. |
-z | --zero-terminated | Menyebabkan pengurutan menggunakan NUL sebagai pembatas baris alih-alih karakter baris baru. |
/ | --help | Menampilkan file bantuan dengan daftar opsi lengkap dan keluar. |
/ | --version | Mengeluarkan versi program dan keluar. |
Contoh pengurutan Linux
Di bawah ini adalah contoh penggunaan sort
perintah untuk mengatur konten file dengan cara yang berbeda.
Contoh 1:Simpan Output ke File
sort
perintah hanya menampilkan konten file setelah mengaturnya, tetapi tidak mengubah file. Namun, -o
opsi memungkinkan Anda untuk menyimpan sort
perintah output ke file.
Misalnya, perintah berikut mengurutkan data di default.txt file dan menyimpan hasilnya ke sorted.txt berkas:
sort -o sorted.txt default.txt
Menjalankan cat mengeluarkan konten file baru.
Cara lain untuk menyimpan sort
keluaran perintah adalah mengarahkan ulang keluaran ke file:
sort default.txt > sorted.txt
Contoh 2:Periksa Penyortiran dalam File
Tentukan -c
opsi untuk memeriksa apakah konten file telah diurutkan. Jika konten sudah diurutkan, tidak ada output dari sort
memerintah.
Namun, ketika sort
menemukan baris yang tidak disortir, ia mengeluarkan pesan yang melaporkan bahwa baris pertama tidak pada tempatnya.
Misalnya:
sort -c default.txt
Perintah mengeluarkan pesan yang melaporkan jumlah dan isi baris pertama yang tidak disortir.
Contoh 3:Urutkan Beberapa File
Ada dua cara untuk mengurutkan banyak file:
1. Cantumkan nama file sebagai argumen yang dipisahkan dengan spasi.
Urutkan beberapa file secara bersamaan dengan menentukan nama file masing-masing sebagai argumen, dipisahkan dengan spasi. Isi file digabungkan, disortir, dan dicetak dalam output standar.
Misalnya:
sort default1.txt default2.txt
Perintah tersebut menggabungkan, mengurutkan, dan mencetak konten kedua file.
2. Pipa find
perintah output ke sort
.
Cara lain untuk mengurutkan banyak file secara bersamaan adalah dengan menyalurkan output perintah find ke sort
dan gunakan --files0-from=
opsi di sort
memerintah.
Tentukan -print0
opsi di find
untuk mengakhiri nama file dengan NUL
karakter dan pastikan program membaca daftar file dengan benar.
Misalnya:
find -name "default?.txt" -print0 | sort --files0-from=-
Contoh di atas menggabungkan dan mengurutkan default1.txt dan default2.txt file.
Contoh 4:Urutkan berdasarkan Bidang
Secara default, sort
membandingkan seluruh isi baris dan memutuskan bagaimana mengurutkannya. Untuk membandingkan menurut subset data, tentukan bidang mana yang akan dibandingkan menggunakan -k
pilihan.
-k
opsi mengambil sintaks berikut:
-k [ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .Cend ] ][ Modifier ] ]
FStart
. Awal baris.CStart
. Kolom pertama di lapangan.Fend
. Akhir baris.CEnd
. Kolom terakhir dari bidang tersebut.
Kunci pengurutan mencakup semua karakter yang dimulai dengan bidang yang ditentukan oleh FStart
variabel dan kolom yang ditentukan oleh CStart
variabel. Kunci diakhiri dengan bidang yang ditentukan oleh FEnd
dan kolom yang ditentukan oleh CEnd
.
Tidak menentukan Fend
mengasumsikan karakter terakhir baris sebagai akhir. Tanpa menentukan CEnd
, karakter terakhir di FEnd
bidang diasumsikan.
Jika ada spasi di antara bidang, sort
menganggapnya sebagai bidang yang terpisah.
Misalnya, baris dalam file berikut berisi tiga bidang:
Urutkan data berdasarkan kolom kedua dengan menjalankan:
sort -k 2,2 school.txt
Perintah mengurutkan data menurut kolom kedua dan mengabaikan kolom pertama.
Contoh 5:Urutkan dalam Urutan Terbalik
Gunakan -r
opsi untuk mengurutkan data dalam urutan terbalik, yaitu dalam urutan abjad terbalik atau angka tertinggi ke terendah.
Misalnya, file berikut diurutkan dengan aturan pengurutan default:
sort default.txt
Menentukan -r
opsi membalikkan urutan penyortiran:
sort -r default.txt
Contoh 6:Hapus Entri Duplikat
-u
opsi memungkinkan sort
untuk menghapus entri duplikat dari file. Misalnya, file berikut memiliki beberapa entri duplikat:
Menentukan -u
opsi mengurutkan data dan menghapus baris duplikat:
sort -u test.txt
Contoh 7:Urutkan berdasarkan Bulan
Tentukan -M
pilihan untuk mengatur data sesuai dengan bulan yang tercantum dalam file.
Untuk mendemonstrasikan pengurutan berdasarkan bulan, buat file yang diisi oleh output perintah ls:
ls -l > month-sorting.txt
Urutkan data dari ls -l
keluaran berdasarkan bulan dengan menjalankan perintah berikut:
sort -Mk6 month-sorting.txt
Perintah mengurutkan konten file berdasarkan bidang keenam berisi pembuatan file bulan .
Contoh 8:Mengurutkan Data Secara Acak
Gunakan -R
opsi untuk mengatur data secara acak tanpa menerapkan kriteria penyortiran apa pun.
Misalnya, file berikut berisi beberapa baris yang diurutkan secara numerik:
Campurkan urutan baris dengan perintah berikut:
sort -R ordered.txt
Outputnya menunjukkan bahwa data sekarang diurutkan secara acak.
Contoh 9:Tentukan Pembatas
sort
memisahkan bidang dalam garis menggunakan spasi (spasi atau tab) sebagai pembatas bidang. Tentukan -t
opsi untuk mengubah pembatas bidang ke karakter yang berbeda.
Misalnya, file berikut berisi beberapa bidang, termasuk nama seseorang, jabatan, dan tempat tinggal:
Menyortir file berdasarkan tempat tinggal tanpa mengubah pembatas tidak akan berfungsi karena beberapa kota memiliki spasi di tengah namanya. Spasi membuat sort
menafsirkan nama kota sebagai dua bidang, bukan satu.
Ubah pembatas menjadi koma (,
) untuk mengurutkan konten file dengan benar:
sort -t, -k4 school.txt
Mengubah pembatas menghasilkan keluaran yang diinginkan.
Contoh 10:Mengurutkan Output Aliran
Cara lain untuk memberikan masukan ke sort
perintahnya adalah menggunakan pipa (|
) operator. Piping ke sort
memungkinkannya untuk mengatur output perintah lain dan, secara opsional, menyimpan hasilnya ke dalam file.
Contoh berikut menunjukkan cara menyalurkan ls
perintah output ke sort
dan atur konten berdasarkan ukuran file:
ls -l /home/$USER | sort -nk5
-nk5
opsi menentukan penyortiran numerik di bidang kelima .