GNU/Linux >> Linux Esercitazione >  >> Linux

Ordinare e contare il numero di occorrenza di righe?

Ho Apache logfile, access.log , come contare il numero di occorrenze di riga in quel file? ad esempio il risultato di cut -f 7 -d ' ' | cut -d '?' -f 1 | tr '[:upper:]' '[:lower:]' è

a.php
b.php
a.php
c.php
d.php
b.php
a.php

il risultato che voglio è:

3 a.php
2 b.php
1 d.php # order doesn't matter
1 c.php 

Risposta accettata:

| sort | uniq -c

Come affermato nei commenti.

Convogliando l'output in sort organizza l'output in ordine alfabetico/numerico.

Questo è un requisito perché uniq corrisponde solo su righe ripetute, ad esempio

a
b
a

Se usi uniq su questo file di testo, restituirà quanto segue:

a
b
a

Questo perché i due a Le s sono separate da b – non sono righe consecutive. Tuttavia, se prima ordini i dati in ordine alfabetico, prima come

a
a
b

Quindi uniq rimuoverà le righe ripetute. Il -c opzione di uniq conta il numero di duplicati e fornisce l'output nella forma:

2 a
1 b

Riferimenti:

  • sort(1)
  • uniq(1)

Linux
  1. Come stampare le righe numero 15 e 25 su ogni 50 righe?

  2. Numero di righe emesse da Ls?

  3. Contare le righe in un file?

  4. Conta righe, parole e caratteri da un file in Linux

  5. Conta le righe di tutti i file nella directory di Ubuntu

Comando Wc in Linux (conta il numero di righe, parole e caratteri)

Comando Linux WC per contare il numero di righe, parole e caratteri

5 modi per contare il numero di righe in un file

Come contare il numero di file e sottodirectory all'interno di una directory

Esempi di comandi WC:conta il numero di righe, parole e caratteri in Linux

Linux:trova il numero di file in una directory e sottodirectory