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)