Saya memiliki Apache logfile, access.log , bagaimana cara menghitung jumlah kemunculan baris dalam file itu? misalnya hasil cut -f 7 -d ' ' | cut -d '?' -f 1 | tr '[:upper:]' '[:lower:]' adalah
a.php
b.php
a.php
c.php
d.php
b.php
a.php
hasil yang saya inginkan adalah:
3 a.php
2 b.php
1 d.php # order doesn't matter
1 c.php
Jawaban yang Diterima:
| sort | uniq -c
Seperti yang dinyatakan dalam komentar.
Piping output ke sort mengatur output ke dalam urutan abjad/numerik.
Ini adalah persyaratan karena uniq hanya cocok pada baris yang berulang, yaitu
a
b
a
Jika Anda menggunakan uniq pada file teks ini, ia akan mengembalikan yang berikut:
a
b
a
Ini karena dua a s dipisahkan oleh b - mereka bukan garis yang berurutan. Namun jika Anda terlebih dahulu mengurutkan data ke dalam urutan abjad seperti
a
a
b
Kemudian uniq akan menghapus garis berulang. -c pilihan uniq menghitung jumlah duplikat dan memberikan output dalam bentuk:
2 a
1 b
Referensi:
sort(1)uniq(1)