Apakah Anda mencari cara untuk mengatur file Anda dan melakukan beberapa operasi pada mereka? Ada banyak contoh dalam pemrograman di mana Anda perlu mengurutkan beberapa data, seperti daftar file. Menyortir file dengan Bash sort
dan ls
perintah akan membantu Anda mengatur semuanya.
Dalam tutorial ini, Anda akan mempelajari dasar-dasar pengurutan file dan konten file.
Ayo menyortir!
Prasyarat
Tutorial ini menggunakan Ubuntu 20.04, tetapi semua distribusi Linux akan berfungsi.
Bash Urutkan File Secara Abjad
Ada banyak cara untuk mengurutkan file di Linux, tetapi mari kita beralih ke cara yang paling umum, mengurutkan file berdasarkan abjad.
Luncurkan terminal Anda dan jalankan ls -l
perintah di bawah ini untuk mendapatkan daftar file dalam direktori dalam urutan menaik. -l
bendera memberitahu ls
perintah untuk mencetak output yang dikembalikan dalam format daftar panjang.
ls -l
Secara default,
ls
perintah daftar file dalam urutan menaik. Untuk membalik urutan penyortiran, berikan-r
tandai kels -l
perintah, seperti ini:ls -lr
. Melewati-r
tandai kels -l
perintah berlaku untuk contoh lain dalam tutorial ini.
Menggunakan Bash Sort untuk Mengurutkan File Berdasarkan Ukuran
Alih-alih mengurutkan file menurut abjad, Anda mungkin ingin mengurutkan file berdasarkan ukuran file. Mengurutkan file berdasarkan ukuran berguna saat memprioritaskan melihat file terkecil atau terbesar dalam daftar.
Untuk mengurutkan file menurut ukuran, berikan -S
bendera untuk memberi tahu ls
perintah untuk mengurutkan daftar file berdasarkan ukuran file.
Jalankan perintah di bawah ini untuk membuat daftar file (ls
) diurutkan berdasarkan ukuran file dalam format daftar panjang (-lS
).
ls -lS
Di bawah ini, Anda dapat melihat perintah mengurutkan file berdasarkan ukuran dalam urutan menurun (ukuran terbesar hingga terkecil).
Untuk membalik urutan pengurutan (terkecil ke terbesar), tambahkan
-r
tandai, seperti ini:ls -lSr
Urutkan File berdasarkan Waktu Modifikasi melalui Bash Sort
Bergerak maju dari pengurutan file berdasarkan ukuran, Anda mungkin menemukan kasus penggunaan di mana Anda perlu mengurutkan file pada saat mereka dimodifikasi. Misalnya, Anda lupa nama file yang Anda buat, dan Anda hanya ingat kapan terakhir kali Anda mengubah file tersebut.
Jalankan perintah di bawah ini di mana -t
parameter memberitahu ls
perintah untuk mengurutkan file berdasarkan waktu modifikasi.
ls -lt
Mengurutkan File berdasarkan Ekstensi File
Saat Anda mencari file dengan jenis file tertentu, mengurutkan file berdasarkan ekstensi file adalah solusi yang ideal.
Jalankan perintah di bawah ini untuk membuat daftar file (ls
) di direktori kerja dan urutkan berdasarkan ekstensinya (-lx
).
ls -lX
Perhatikan di bawah bahwa perintah mengurutkan file dengan ekstensi yang sama dalam urutan menaik berdasarkan namanya.
Mengurutkan Konten dalam File Teks
Sekarang, Anda telah mempelajari berbagai metode untuk mengurutkan file dalam direktori. Mengalihkan fokus Anda dari ls
perintah, coba jalankan sort
memerintah. sort
perintah mengurutkan konten file tergantung pada bendera yang akan Anda tambahkan. Tapi pertama-tama, Anda memerlukan file dengan konten yang akan Anda modifikasi.
Jalankan perintah di bawah ini untuk membuat file teks bernama ~/data/fruits.txt yang berisi nama-nama buah. -e
flag memungkinkan interpretasi garis miring terbalik untuk menulis setiap kata pada baris baru (\n
).
echo -e "apple \nmango \nwatermelon \ncherry \norange \nbanana" > fruits.txt
Sekarang jalankan perintah di bawah ini ke sort
setiap kata dalam fruits.txt
.
sort fruits.txt
Di bawah ini, Anda dapat melihat konten file diurutkan dalam urutan menaik.
Tanpa bendera apa pun,
sort
perintah mengurutkan konten file dalam urutan menaik secara default. Untuk membalik urutan penyortiran, tambahkan-r
tandai ke perintah sortir, seperti ini:sort -r fruits.txt
. Mengurutkan dalam urutan terbalik dengan menambahkan-r
flag berlaku untuk contoh lain dalam tutorial ini.
Mengurutkan Daftar Angka dalam File Teks
Perintah untuk mengurutkan angka mirip dengan mengurutkan teks dalam file, tetapi Anda akan menambahkan -n
bendera sebagai gantinya. Mari buat file terlebih dahulu untuk mendemonstrasikan cara mengurutkan konten file secara numerik.
Jalankan perintah di bawah ini untuk membuat file bernama ~/data/scores.txt yang berisi nomor acak, masing-masing dalam baris baru.
echo -e "45 \n69 \n52 \n21 \n3 \n5 \n78" > scores.txt
Sekarang jalankan perintah di bawah ini ke sort
angka (-n
) di ~/data/scores.txt berkas.
sort -n scores.txt
Anda dapat melihat di bawah ini, angka-angka yang tercantum dalam baris mulai dari angka terkecil hingga terbesar.
Mengurutkan Daftar Nomor Versi dalam File Teks
Mungkin Anda memiliki daftar nomor versi dalam file teks yang ingin Anda urutkan. Jika demikian, tambahkan --version-sort
opsi akan berhasil.
Untuk mendemonstrasikan bagaimana --version-sort
opsi berfungsi, buat file teks terlebih dahulu.
Jalankan perintah di bawah ini untuk membuat file teks bernama ~/data/versions.txt dengan nomor versi acak terdaftar, masing-masing pada baris baru (\n
).
echo -e "1.0.0.1 \n 6.2.1.0 \n4.0.0.2" > versions.txt
Sekarang jalankan perintah di bawah ini ke sort
nomor versi (--version-sort
) di versions.txt mengajukan. --field-separator
opsi memberitahu sort
perintah agar angka di setiap versi dipisahkan oleh titik (.
). Anda dapat mengubah pemisah bidang ke karakter apa pun yang memisahkan angka pada versi yang tercantum dalam file teks Anda.
sort --version-sort --field-separator=. versions.txt
Bash Sort untuk Menemukan dan Mengurutkan File melalui Ekstensi File
Anda telah menjalankan satu perintah (baik ls
atau sort
) pada contoh sebelumnya. Tetapi dalam pemrograman, Anda mungkin sering perlu menggunakan dua atau lebih perintah secara bersamaan. Bagaimana? Dengan menyalurkan satu perintah ke perintah lainnya.
Jalankan perintah di bawah ini ke find
semua file penurunan harga (-iname "*.md"
) di direktori kerja (.
), dan urutkan berdasarkan abjad (sort -r
). Coba cari dan urutkan file lain dengan mengubah "*.md"
ke ekstensi file lain.
find . -iname "*.md" | sort -r
Jika Anda lebih suka menyimpan keluaran yang diurutkan ke file teks daripada keluaran standar di konsol, tambahkan
--output
pilihan, seperti ini:find . -iname "*.md" | sort -r --output=sorted.txt
.--output
opsi memberitahusort
perintah untuk membuat file output untuk daftar file yang diurutkan.
Kesimpulan
Motif artikel ini adalah untuk mengajari Anda tentang berbagai cara menyortir menggunakan perintah Bash pada mesin Linux. Anda sekarang telah belajar mengurutkan daftar file dan mengurutkan konten file. Selain itu, Anda juga harus mengetahui cara menyalurkan perintah yang berbeda untuk penyortiran file yang lebih kompleks.
Dengan pengetahuan baru ini sebagai batu loncatan, mengapa tidak membuat skrip untuk mengotomatiskan daftar file dan penyortiran konten file?