Manipulación de Texto
Herramientas poderosas para procesar, buscar, filtrar y transformar texto en sistemas Linux.
Visualización de Contenido
Section titled “Visualización de Contenido”cat - Mostrar contenido completo
Section titled “cat - Mostrar contenido completo”Muestra el contenido completo de archivos de texto. Comando básico para visualización y concatenación de archivos.
# Mostrar archivocat file.txt
# Concatenar archivoscat file1.txt file2.txt
# Numerar líneascat -n file.txt
# Mostrar caracteres no imprimiblescat -A file.txt
# Crear archivo desde entrada estándarcat > newfile.txtless - Visualizador paginado
Section titled “less - Visualizador paginado”Visualizador de texto con navegación avanzada y búsqueda. Ideal para archivos grandes y análisis detallado.
# Abrir archivoless file.txt
# Navegación:# Espacio: página siguiente# b: página anterior# /texto: buscar hacia adelante# ?texto: buscar hacia atrás# q: salirmore - Visualizador simple
Section titled “more - Visualizador simple”Visualizador básico de texto página por página. Versión más simple de less para visualización rápida.
more file.txthead - Primeras líneas
Section titled “head - Primeras líneas”Muestra las primeras líneas de archivos. Útil para vista previa rápida y análisis de headers de archivos.
# Primeras 10 líneas (por defecto)head file.txt
# Primeras N líneashead -n 20 file.txt
# Primeros N byteshead -c 100 file.txt
# Múltiples archivoshead file1.txt file2.txttail - Últimas líneas
Section titled “tail - Últimas líneas”Muestra las últimas líneas de archivos con opción de seguimiento en tiempo real. Esencial para monitoreo de logs.
# Últimas 10 líneas (por defecto)tail file.txt
# Últimas N líneastail -n 20 file.txt
# Seguir archivo en tiempo realtail -f /var/log/syslog
# Seguir con número de líneastail -f -n 50 /var/log/syslogUso en pentesting: Monitorear logs en tiempo real durante ataques o análisis forense.
comm - Comparar archivos ordenados
Section titled “comm - Comparar archivos ordenados”Compara dos archivos ordenados mostrando líneas únicas y comunes. Útil para análisis de conjuntos de datos.
# Comparar archivoscomm file1.txt file2.txt
# Mostrar solo líneas únicas en file1comm -23 file1.txt file2.txt
# Mostrar solo líneas únicas en file2comm -13 file1.txt file2.txt
# Mostrar solo líneas comunescomm -12 file1.txt file2.txtBúsqueda y Filtrado
Section titled “Búsqueda y Filtrado”grep - Búsqueda de patrones
Section titled “grep - Búsqueda de patrones”Busca patrones de texto en archivos usando expresiones regulares. Herramienta fundamental para filtrado y análisis.
# Búsqueda básicagrep "pattern" file.txt
# Búsqueda insensible a mayúsculasgrep -i "pattern" file.txt
# Búsqueda recursiva en directoriosgrep -r "pattern" /path/to/directory/
# Mostrar número de líneagrep -n "pattern" file.txt
# Mostrar líneas que NO coincidengrep -v "pattern" file.txt
# Contar coincidenciasgrep -c "pattern" file.txt
# Mostrar solo archivos que coincidengrep -l "pattern" *.txt
# Expresiones regulares extendidasgrep -E "pattern1|pattern2" file.txt
# Contexto alrededor de coincidenciasgrep -A 3 -B 3 "pattern" file.txtUso en pentesting: Buscar credenciales, configuraciones sensibles, direcciones IP y patrones específicos en logs.
egrep - Grep extendido
Section titled “egrep - Grep extendido”Versión extendida de grep con soporte completo para expresiones regulares. Equivalente a grep -E.
# Equivalente a grep -Eegrep "pattern1|pattern2" file.txt
# Buscar direcciones IPegrep "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" file.txt
# Buscar emailsegrep "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}" file.txtfgrep - Grep literal
Section titled “fgrep - Grep literal”Búsqueda de cadenas literales sin interpretación de regex. Más rápido para búsquedas de texto fijo.
# Búsqueda de cadena literal (sin regex)fgrep "literal.string" file.txtCorte y Selección
Section titled “Corte y Selección”cut - Extraer columnas
Section titled “cut - Extraer columnas”Extrae campos específicos de líneas de texto. Útil para procesar archivos delimitados y extraer datos específicos.
# Extraer caracteres específicoscut -c 1-10 file.txt
# Extraer campos delimitadoscut -d ',' -f 1,3 file.csv
# Extraer campo específicocut -d ':' -f 1 /etc/passwd
# Usar tabulador como delimitadorcut -f 1,2 file.txtcolumn - Formatear en columnas
Section titled “column - Formatear en columnas”Formatea texto en columnas alineadas. Mejora la legibilidad de datos tabulares en terminal.
# Formatear en columnascolumn -t file.txt
# Especificar delimitadorcolumn -t -s ',' file.csv
# Especificar número de columnascolumn -c 3 file.txtawk - Procesador de texto
Section titled “awk - Procesador de texto”Lenguaje de programación para procesamiento de texto estructurado. Excelente para análisis de columnas y cálculos. avanzado
# Imprimir columna específicaawk '{print $1}' file.txt
# Imprimir múltiples columnasawk '{print $1, $3}' file.txt
# Usar delimitador específicoawk -F ',' '{print $1}' file.csv
# Condicionesawk '$3 > 100 {print $1}' file.txt
# Sumar columnaawk '{sum += $1} END {print sum}' file.txt
# Contar líneasawk 'END {print NR}' file.txtsed - Editor de flujo
Section titled “sed - Editor de flujo”Editor de texto no interactivo para transformaciones automáticas. Potente para sustituciones y modificaciones en lote.
# Sustituir primera ocurrenciased 's/old/new/' file.txt
# Sustituir todas las ocurrenciassed 's/old/new/g' file.txt
# Eliminar líneas que coincidensed '/pattern/d' file.txt
# Imprimir líneas específicassed -n '1,10p' file.txt
# Insertar textosed '2i\New line' file.txt
# Modificar archivo in-sitused -i 's/old/new/g' file.txtOrdenamiento y Unicidad
Section titled “Ordenamiento y Unicidad”sort - Ordenar líneas
Section titled “sort - Ordenar líneas”Ordena líneas de texto según diferentes criterios. Fundamental para organización y análisis de datos.
# Ordenamiento básicosort file.txt
# Ordenamiento numéricosort -n file.txt
# Ordenamiento reversosort -r file.txt
# Ordenar por columna específicasort -k 2 file.txt
# Ordenamiento únicosort -u file.txt
# Ignorar mayúsculassort -f file.txtuniq - Eliminar duplicados
Section titled “uniq - Eliminar duplicados”Elimina o cuenta líneas duplicadas consecutivas. Debe usarse con sort para eliminar todos los duplicados.
# Eliminar líneas duplicadas consecutivasuniq file.txt
# Contar ocurrenciasuniq -c file.txt
# Mostrar solo duplicadosuniq -d file.txt
# Mostrar solo únicosuniq -u file.txtConteo y Estadísticas
Section titled “Conteo y Estadísticas”wc - Contar palabras
Section titled “wc - Contar palabras”Cuenta líneas, palabras y caracteres en archivos. Útil para estadísticas básicas de archivos de texto., líneas, caracteres
# Contar líneas, palabras y caractereswc file.txt
# Solo líneaswc -l file.txt
# Solo palabraswc -w file.txt
# Solo caractereswc -c file.txt
# Múltiples archivoswc *.txtnl - Numerar líneas
Section titled “nl - Numerar líneas”# Numerar todas las líneasnl file.txt
# Numerar solo líneas no vacíasnl -b t file.txt
# Formato de numeraciónnl -n rz file.txtTransformación de Texto
Section titled “Transformación de Texto”tr - Traducir caracteres
Section titled “tr - Traducir caracteres”Traduce o elimina caracteres específicos. Útil para transformaciones de texto y limpieza de datos.liminar caracteres
# Convertir a mayúsculastr 'a-z' 'A-Z' < file.txt
# Convertir a minúsculastr 'A-Z' 'a-z' < file.txt
# Eliminar caracterestr -d '0-9' < file.txt
# Comprimir espacios repetidostr -s ' ' < file.txt
# Reemplazar caracterestr ' ' '_' < file.txtrev - Invertir líneas
Section titled “rev - Invertir líneas”# Invertir cada línea carácter por carácterrev file.txttac - Mostrar líneas en orden inverso
Section titled “tac - Mostrar líneas en orden inverso”# Mostrar archivo desde la última líneatac file.txtCombinación de Archivos
Section titled “Combinación de Archivos”join - Unir archivos
Section titled “join - Unir archivos”Une líneas de dos archivos basándose en campos comunes. Similar a JOIN en bases de datos relacionales. por campo común
# Unir por primer campojoin file1.txt file2.txt
# Unir por campo específicojoin -1 2 -2 1 file1.txt file2.txt
# Usar delimitador específicojoin -t ',' file1.csv file2.csvpaste - Combinar líneas
Section titled “paste - Combinar líneas”Combina líneas correspondientes de múltiples archivos. Útil para crear archivos tabulares desde múltiples fuentes. horizontalmente
# Unir archivos lado a ladopaste file1.txt file2.txt
# Usar delimitador específicopaste -d ',' file1.txt file2.txt
# Unir líneas del mismo archivopaste -s file.txtsplit - Dividir archivos
Section titled “split - Dividir archivos”# Dividir por número de líneassplit -l 1000 largefile.txt
# Dividir por tamañosplit -b 1M largefile.txt
# Prefijo personalizadosplit -l 1000 largefile.txt part_Ejemplos para Pentesting
Section titled “Ejemplos para Pentesting”Análisis de logs
Section titled “Análisis de logs”# Buscar IPs sospechosas en logsgrep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" /var/log/auth.log | sort | uniq -c | sort -nr
# Extraer usuarios de intentos de loginawk '/Failed password/ {print $9}' /var/log/auth.log | sort | uniq -c
# Buscar patrones de ataquegrep -i "sql\|script\|alert\|union\|select" /var/log/apache2/access.logProcesamiento de datos de reconocimiento
Section titled “Procesamiento de datos de reconocimiento”# Extraer subdominios únicoscat domains.txt | cut -d '.' -f 1 | sort | uniq
# Procesar salida de nmapgrep "open" nmap_output.txt | awk '{print $1}' | sort -n
# Limpiar lista de IPscat ips.txt | grep -E "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$" | sort | uniqAnálisis de archivos de configuración
Section titled “Análisis de archivos de configuración”# Buscar credenciales en archivosgrep -ri "password\|passwd\|pwd" /etc/ 2>/dev/null
# Extraer usuarios del sistemacut -d ':' -f 1 /etc/passwd | sort
# Buscar archivos con configuraciones sensiblesfind /etc -name "*.conf" -exec grep -l "password\|key\|secret" {} \;Formateo de resultados
Section titled “Formateo de resultados”# Crear reporte de puertos abiertosawk '/open/ {printf "%-15s %-10s %s\n", $2, $1, $3}' nmap_scan.txt
# Contar tipos de archivosfind /path -type f | rev | cut -d '.' -f 1 | rev | sort | uniq -c | sort -nrTip: Combina estos comandos con pipes (
|) para crear flujos de procesamiento potentes. Por ejemplo:cat log.txt | grep "ERROR" | cut -d ' ' -f 1 | sort | uniq -c | sort -nr