GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Mengambil Sampel Secara Acak Dari Sebuah File?

Apakah ada perintah Linux yang dapat digunakan untuk mengambil sampel subset file? Misalnya, sebuah file berisi satu juta baris, dan kami ingin mengambil sampel secara acak hanya seribu baris dari file tersebut.

Untuk random yang saya maksud adalah setiap garis mendapat peluang yang sama untuk dipilih dan tidak ada garis yang dipilih yang berulang.

head dan tail dapat memilih subset dari file tetapi tidak secara acak. Saya tahu saya selalu dapat menulis skrip python untuk melakukannya tetapi hanya ingin tahu apakah ada perintah untuk penggunaan ini.

Jawaban yang Diterima:

shuf perintah (bagian dari coreutils) dapat melakukan ini:

shuf -n 1000 file

Dan setidaknya untuk versi non-kuno saat ini (ditambahkan dalam komit dari 2013), yang akan menggunakan pengambilan sampel reservoir bila perlu, artinya tidak boleh kehabisan memori dan menggunakan algoritme cepat.


Linux
  1. Cara Menyimpan Output Perintah ke File di Linux

  2. Cara Menggunakan Perintah Tar di Linux

  3. Cara menghasilkan sebagian checksum dari suatu file

  1. Bagaimana Memaksa Menghapus File?

  2. Bagaimana cara menambahkan output ke file?

  3. Cara mengedit file teks di terminal saya

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

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

  3. Cara Menggunakan Perintah md5sum di Linux