← Volver al listado de tecnologías
Bandit Nivel 8→9 - Líneas Únicas con sort y uniq
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:
sort data.txt- ordena todas las líneas|- envía la salida al siguiente comandouniq -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ón | Descripción |
|---|---|
-n | Ordenar numéricamente |
-r | Orden inverso |
-k N | Ordenar por columna N |
-t ":" | Usar : como delimitador |
-u | Eliminar duplicados |
-h | Ordenar 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ón | Descripción |
|---|---|
-c | Prefija líneas con conteo |
-d | Solo líneas duplicadas |
-u | Solo líneas únicas |
-i | Ignorar 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
| Comando | Descripción |
|---|---|
sort | Ordena líneas |
uniq | Filtra duplicados adyacentes |
uniq -u | Solo líneas únicas |
uniq -c | Cuenta ocurrencias |
| | Pipe - conecta comandos |
Conexión al Siguiente Nivel
ssh [email protected] -p 2220