GNU/Linux >> Tutoriales Linux >  >> Linux

¿Ordenar y contar el número de ocurrencias de líneas?

Tengo Apache archivo de registro, access.log , ¿cómo contar el número de ocurrencias de línea en ese archivo? por ejemplo, el resultado de cut -f 7 -d ' ' | cut -d '?' -f 1 | tr '[:upper:]' '[:lower:]' es

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

el resultado que quiero es:

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

Respuesta aceptada:

| sort | uniq -c

Como se indica en los comentarios.

Canalización de la salida en sort organiza la salida en orden alfabético/numérico.

Este es un requisito porque uniq solo coincidencias en líneas repetidas, es decir

a
b
a

Si usas uniq en este archivo de texto, devolverá lo siguiente:

a
b
a

Esto se debe a que los dos a s están separados por b – no son líneas consecutivas. Sin embargo, si primero ordena los datos en orden alfabético primero como

a
a
b

Entonces uniq eliminará las líneas repetidas. El -c opción de uniq cuenta el número de duplicados y proporciona resultados en la forma:

2 a
1 b

Referencias:

  • sort(1)
  • uniq(1)

Linux
  1. Cómo contar el número de líneas en un archivo en Linux (ejemplos de comandos wc y nl)

  2. Cuente las líneas de todos los archivos en el directorio de Ubuntu

  3. ¿Cómo contar líneas en un documento?

  4. Cuente la cantidad de caracteres, palabras y líneas en PowerShell

  5. Obtenga todas las extensiones y su respectivo recuento de archivos en un directorio

Comando Wc en Linux (Cuenta Número de Líneas, Palabras y Caracteres)

Comando WC de Linux para contar el número de líneas, palabras y caracteres

5 formas de contar el número de líneas en un archivo

Cómo contar la cantidad de archivos y subdirectorios dentro de un directorio

Ejemplos de comandos de WC:contar el número de líneas, palabras y caracteres en Linux

Linux:busque el número de archivos en un directorio y subdirectorios