GNU/Linux >> Belajar Linux >  >> Linux

Urutkan Dan Hitung Jumlah Terjadinya Garis?

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)

Linux
  1. Bagaimana Cara Mencetak Baris Nomor 15 Dan 25 Dari Setiap 50 Baris?

  2. Hitung baris, kata, dan karakter dari file di Linux

  3. Cara Menghitung Jumlah Baris dalam File di Linux (Contoh Perintah wc dan nl)

  1. Hitung baris semua file di direktori Ubuntu

  2. Bagaimana cara menghitung jumlah nilai unik suatu bidang dalam file teks yang dibatasi tab?

  3. Bagaimana cara menghitung jumlah baris file yang ditemukan?

  1. Cara Menghitung Jumlah File dan Subdirektori di dalam Direktori yang Diberikan

  2. Jumlah Baris Dikeluarkan Oleh Ls?

  3. Dapatkan semua ekstensi dan jumlah file masing-masing dalam direktori