← Volver al listado de tecnologías

Bandit Nivel 8→9 - Líneas Únicas con sort y uniq

Por: SiempreListo
overthewirebanditsortuniqnivel-9

Bandit Nivel 8→9 - Líneas Únicas con sort y uniq

Objetivo

La contraseña está en data.txt y es la única línea que aparece una sola vez.

Teoría: sort y uniq

El Comando sort

Ordena líneas de texto alfabéticamente o numéricamente.

sort archivo.txt           # Orden alfabético
sort -n archivo.txt        # Orden numérico
sort -r archivo.txt        # Orden inverso
sort -u archivo.txt        # Elimina duplicados

El Comando uniq

Filtra líneas adyacentes duplicadas.

uniq archivo.txt           # Elimina duplicados adyacentes
uniq -c archivo.txt        # Cuenta ocurrencias
uniq -d archivo.txt        # Solo muestra duplicados
uniq -u archivo.txt        # Solo muestra únicos

¡Importante!

uniq solo detecta duplicados adyacentes. Por eso casi siempre se usa con sort primero:

# Incorrecto - no detectará todos los duplicados
uniq archivo.txt

# Correcto - primero ordena, luego encuentra únicos
sort archivo.txt | uniq

Solución

sort data.txt | uniq -u

Desglose:

  1. sort data.txt - ordena todas las líneas
  2. | - envía la salida al siguiente comando
  3. uniq -u - muestra solo líneas que aparecen una vez

Pipes (Tuberías)

El símbolo | conecta la salida de un comando con la entrada de otro:

comando1 | comando2 | comando3

Flujo de datos

┌──────────┐     ┌──────────┐     ┌──────────┐
│ comando1 │────►│ comando2 │────►│ comando3 │
│  stdout  │     │stdin→out │     │  stdin   │
└──────────┘     └──────────┘     └──────────┘

Ejemplos de Pipes

# Contar archivos en un directorio
ls | wc -l

# Buscar procesos de usuario
ps aux | grep "python" | grep -v "grep"

# Top 10 archivos más grandes
du -h * | sort -rh | head -10

Opciones de sort

OpciónDescripción
-nOrdenar numéricamente
-rOrden inverso
-k NOrdenar por columna N
-t ":"Usar : como delimitador
-uEliminar duplicados
-hOrdenar tamaños humanos (1K, 2M)
# Ordenar por segunda columna
sort -k2 archivo.txt

# Ordenar CSV por tercera columna
sort -t"," -k3 datos.csv

Opciones de uniq

OpciónDescripción
-cPrefija líneas con conteo
-dSolo líneas duplicadas
-uSolo líneas únicas
-iIgnorar mayúsculas
# Ver cuántas veces aparece cada línea
sort data.txt | uniq -c

# Ver solo las repetidas
sort data.txt | uniq -d

# Ordenar por frecuencia
sort data.txt | uniq -c | sort -rn

Comando Alternativo

sort data.txt | uniq -c | grep "^\s*1 "

Esto muestra líneas que aparecen exactamente 1 vez.

Comandos Aprendidos

ComandoDescripción
sortOrdena líneas
uniqFiltra duplicados adyacentes
uniq -uSolo líneas únicas
uniq -cCuenta ocurrencias
|Pipe - conecta comandos

Conexión al Siguiente Nivel

ssh [email protected] -p 2220