GNU/Linux >> Belajar Linux >  >> Linux

Gambarkan Secara Acak Sejumlah Garis Dari File Data?

Saya memiliki daftar data, seperti

12345
23456
67891
-20000
200
600
20
...

Asumsikan ukuran kumpulan data ini (yaitu baris file) adalah N . Saya ingin menggambar m randomly secara acak baris dari file data ini. Oleh karena itu, outputnya harus berupa dua file, salah satunya adalah file yang menyertakan m ini baris data, dan yang lainnya termasuk N-m baris data.

Apakah ada cara untuk melakukannya menggunakan perintah Linux?

Jawaban yang Diterima:

Ini mungkin bukan cara yang paling efisien tetapi berhasil:

shuf <file> > tmp
head -n $m tmp > out1
tail -n +$(( m + 1 )) tmp > out2

Dengan $m berisi jumlah baris.


Linux
  1. Pisahkan File Dengan Jumlah Baris Termasuk Header Di Masing-Masing?

  2. Hapus Beberapa Baris Pertama Secara Efisien Dari File Teks?

  3. Awk Dari Baris Yang Berbeda?

  1. Buat Data Pembacaan Teks Dari File?

  2. Daftar baris hanya dari satu file di DIFF

  3. Hapus baris tertentu dari file riwayat Bash

  1. Temukan jumlah Baris Kode dari Repositori GitHub

  2. Gambarlah sejumlah garis secara acak dari file data

  3. Bagaimana cara menampilkan baris tertentu dari file teks di Linux?