GNU/Linux >> Belajar Linux >  >> Linux

Menggunakan Bash Sort untuk Mengurutkan File Seperti Bos

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 ke ls -l perintah, seperti ini:ls -lr . Melewati -r tandai ke ls -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 memberitahu sort 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?


Linux
  1. Menggunakan rsync untuk Menyinkronkan File

  2. Array di Bash Tidak Ditemukan

  3. Transfer file menggunakan lftp dalam skrip bash

  1. Kelola direktori Linux /tmp seperti bos

  2. Sort --parallel tidak memparalelkan

  3. Masalah menggunakan sort dan comm

  1. Menggunakan Bash untuk otomatisasi

  2. Menggunakan Pernyataan Kasus di Bash

  3. Cara Mengurutkan File di Linux menggunakan Perintah Sortir