shell - ordenar URLs únicas de registro
sorting logging (4)
Para los registros de acceso nginx, esto proporciona las URL únicas a las que se llama:
sed -r "s/.*(GET|POST|PUT|DELETE|HEAD) (.*?) HTTP.*//2/" /var/log/nginx/access.log | sort | uniq -u
Referencia: https://www.guyrutenberg.com/2008/08/10/generating-url-list-from-access-log-access_log/
Necesito obtener las URL únicas de un registro web y luego ordenarlas. Estaba pensando en usar grep, uniq, ordenar comando y enviar esto a otro archivo
Ejecuté este comando:
cat access.log | awk ''{print $7}'' > url.txt
entonces solo consigue el único y ordénalos
cat url.txt | uniq | sort > urls.txt
El problema es que puedo ver duplicados, aunque el archivo está ordenado, lo que significa que mi comando funcionó. ¿Por qué?
Tratar
cat url.txt | sort | uniq
Uniq necesita su entrada ordenada, pero usted ordenó después de uniq. Tratar:
$ sort -u < url.txt > urls.txt
uniq | sort
uniq | sort
no funciona: uniq
elimina los duplicados contiguos.
La forma correcta es sort | uniq
sort | uniq
o mejor sort -u
.