GNU/Linux >> Belajar Linux >  >> Linux

Hitung Banyaknya Baris Dengan Sebuah String Terjadi N Kali Dalam Beberapa Kolom?

Saya memiliki beberapa ratus file teks yang masing-masing terdiri dari lima kolom yang dibatasi tab. Kolom pertama berisi indeks dan empat berikutnya jumlah kemunculan. Sekarang saya ingin menghitung jumlah baris yang berisi 3 kolom dengan 0 (yaitu 7 baris pada contoh di bawah).

1   0   0   0   9
2   0   9   0   0
3   10  0   0   0
4   0   10  4   0
5   0   0   0   10
6   0   0   0   10
7   0   0   0   10
8   0   10  0   0
9   5   0   5   0

Saya dapat mengkodekan ini sebagai loop dalam R, tetapi karena file asli masing-masing berisi 60+ juta baris, saya ingin tahu apakah tidak ada solusi dengan awk atau sed dan wc -l.

Jawaban yang Diterima:

Menggunakan GNU sed:

sed -E 's/\t0\>/&/3;t;d' file  | wc -l

Seperti yang ditunjukkan oleh Isaac, jika kita ingin menghitung tepat 3 maka lakukan ini :

sed -n 's/\t0\>//4;t;s//&/3p' file | wc -l

Linux
  1. Bagaimana Mengganti String Dengan String Yang Mengandung Slash Dengan Sed?

  2. Sed:Hapus Semua Kemunculan String Kecuali Yang Pertama?

  3. Apa Cara Terbaik Untuk Menghitung Jumlah File Dalam Direktori?

  1. Bekerja Dengan Kolom – Awk Dan Sed?

  2. Menambahkan Word Di Akhir Baris Dengan Sed?

  3. Cara mengganti string dalam banyak file di baris perintah linux

  1. Ganti kutipan pintar dengan perintah sed Linux

  2. Memanipulasi teks pada baris perintah dengan sed

  3. Menggunakan sed untuk membagi string dengan pembatas