GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengacak Baris dalam File di Linux

Karena telah ditetapkan bahwa sistem operasi Linux adalah jack dari semua perdagangan komputasi melalui berbagai tip dan artikel baris perintah Linux yang telah Anda temukan di situs ini.

Saatnya untuk lebih mengembangkan reputasi sistem operasi ini. Sebagai bagian dari manajemen file Linux, kita akan mencari cara untuk mengacak baris dalam file yang berada di lingkungan sistem operasi Linux.

Mengacak baris dalam file di lingkungan sistem operasi Linux dapat mengambil dua pendekatan. Di bawah pendekatan satu, Anda mungkin ingin mengacak/mengatur ulang baris dalam file yang ditargetkan agar muncul dalam urutan tertentu yang diperlukan. Dalam kasus seperti itu, perintah sortir dipanggil.

Di bawah pendekatan 2, Anda tidak memperhatikan urutan di mana baris terakhir dalam file yang ditargetkan akan muncul. Dalam kasus seperti itu, perintah shuf dipanggil.

Artikel ini akan membawa kita melalui berbagai teknik Linux dengan mengacak baris secara acak dalam sebuah file di Linux.

Pernyataan Masalah

Kita perlu membuat contoh file teks dengan beberapa baris yang akan kita rujuk saat menerapkan dan menjalankan berbagai perintah pengocokan Linux yang akan dibahas.

$ sudo nano sample_file.txt

Kita dapat menggunakan perintah cat untuk tampilan bernomor dari seluruh file ini:

$ cat -n sample_file.txt

Perintah kucing output memberitahu kita bahwa kita berurusan dengan file teks dengan total 15 garis. Juga, seperti yang mungkin telah Anda perhatikan, baris 12 ke 14 berulang. Munculnya tiga baris ini akan membantu kita memahami cara kerja perintah pengacakan yang berbeda.

Mengacak Baris Menggunakan Perintah Shuf di Linux

Sejak GNU Coreutils paket host shuf perintah, itu harus diinstal secara default di distribusi sistem operasi Linux Anda. Fungsi utama shuf perintahnya adalah untuk menghasilkan permutasi acak berdasarkan input yang dimasukkan ke dalamnya.

Mekanisme kerja shuf perintahnya adalah sebagai berikut; itu pertama-tama memuat data input ke dalam memori, referensi jika memori bebas lebih besar dari data input/ukuran file sebelum melanjutkan dengan eksekusi.

Sintaksnya adalah sebagai berikut:

$ shuf [TARGET_INPUT_FILE] 

Dalam kasus kami, implementasinya adalah sebagai berikut:

$ shuf sample_file.txt

Seperti yang Anda lihat, kami telah berhasil mengacak garis secara acak dalam file teks sampel kami. Jika Anda menjalankan shuf perintah, lagi dan lagi, Anda akan mendapatkan hasil yang berbeda setiap kali:

$ shuf random_file.txt 

Gunakan Perintah Sortir untuk Mengacak Baris di Linux

Sedangkan sortir perintah terutama digunakan untuk mengatur ulang baris file dengan cara tertentu, kita dapat mengacak baris file ini jika kita menggabungkan sort perintah dengan -R pilihan.

$ sort -R sample_file.txt 

Menjalankan perintah berulang kali akan menghasilkan hasil yang berbeda setiap kali.

Gunakan Perintah Awk untuk Mengacak Baris File di Linux

Sesuai halaman manual Linux-nya (man awk ), awk adalah pemindaian pola dan bahasa pemrograman pemrosesan teks yang sempurna. Namun, untuk memahami penggunaannya dalam shuffling lines, Anda memerlukan beberapa paparan konsep pemrograman seperti variabel, loop (perulangan while), dan pernyataan (pernyataan if) seperti yang ditunjukkan di bawah ini:

awk 'BEGIN{srand() }
{ lines[++d]=$0 }
END{
    while (1){
    if (e==d) {break}
        RANDOM = int(1 + rand() * d)
        if ( RANDOM in lines  ){
            print lines[RANDOM]
            delete lines[RANDOM]
            ++e
        }
    }
}' sample_file.txt

Kami sekarang nyaman dengan mengacak baris dalam file di Linux.


Linux
  1. Cara Menyimpan Output Perintah ke File di Linux

  2. Cara Menampilkan Baris Tertentu dari File di Baris Perintah Linux

  3. Perintah wc Linux

  1. Perintah File Linux:Cara Menentukan Jenis File di Linux

  2. Cara Menghapus (Menghapus) File atau Direktori di Linux

  3. Cara Menghitung Jumlah Baris dalam File di Linux (Contoh Perintah wc dan nl)

  1. Cara Menggunakan Perintah md5sum di Linux

  2. Cara Menggunakan Perintah sentuh di Linux

  3. Cara Menggunakan Perintah kepala Linux