Cara Menghitung Semua Kecocokan String Dengan grep Untuk Linux
grep adalah utilitas penelusuran teks yang dapat bekerja dengan input standar atau beberapa file sekaligus. Ini digunakan untuk mencetak kecocokan untuk pola, string, atau ekspresi reguler. Seringkali berguna untuk menghitung jumlah kecocokan, yang grep dapat melakukannya dengan cukup mudah.
Menghitung Kecocokan Dengan grep
Perintah grep memiliki tanda -c, yang akan menghitung jumlah baris yang cocok dan mencetak angka. Ini berguna untuk banyak hal, seperti mencari melalui file log untuk jumlah entri dari IP partikel, titik akhir, atau pengenal lainnya.
grep -c "1.2.3.4" /var/log/nginx/access.log
Namun, grep mampu mencocokkan beberapa kali per baris. Jika Anda menggunakan tanda -o, grep akan mencetak baris baru per kecocokan. Ini tidak berfungsi dengan tanda -c, karena hanya akan menghitung baris yang cocok, bukan beberapa kecocokan per baris.
Solusi yang lebih baik adalah menggunakan utilitas wc (jumlah kata) dengan parameter -l (garis), yang akan menghitung jumlah baris mentah yang diteruskan ke input standar. Menggunakan wc -l adalah solusi yang lebih disukai karena bekerja dengan -o untuk menghitung jumlah kemunculan string atau pola tertentu di seluruh file.
grep -o "foo" file | wc -l
Menghitung Banyak File
Fitur bagus dari grep adalah kemampuan untuk menangani banyak file sekaligus, baik yang melewati xargs, parameter, atau disertakan dengan ekspansi wildcard. Saat menangani beberapa file, grep akan mencetak nama file sebelum kecocokan. Saat menggunakan -c untuk menghitung jumlah baris yang cocok, itu juga akan mencetak nama file:
grep "foo" ./*.txt -cH
Anda harus selalu menggunakan tanda -H ketika bekerja dengan kemungkinan banyak file, karena akan selalu cetak nama file meskipun hanya ada satu file yang diteruskan ke grep. Ini akan mencegah otomatisasi rusak jika Anda bergantung pada nama file yang ada di sana.
Jika Anda ingin menggunakan -o untuk menghitung beberapa kecocokan per baris, dan meneruskan output ke wc -l, sayangnya Anda akan memiliki kemampuan untuk melihat angka untuk setiap individu file seperti dengan -c. Namun, dengan sedikit skrip, Anda dapat memotong kolom pertama dengan cut, dan menghitung jumlah kemunculan unik untuk setiap nama file dengan uniq -c:
grep "foo" ./*.txt -o | potong -d `:` -f 1 | uniq -c
TERKAIT:Cara Mengekstrak dan Mengurutkan Kolom dari File Log di Linux
Itulah berita seputar Cara Menghitung Semua Kecocokan String Dengan grep Untuk Linux, semoga bermanfaat. Disadur dari HowToGeek.com.