In LinuxCasi todo es texto: archivos de configuración, registros, scripts e incluso la salida de los comandos del sistema. Por eso, ser capaz de procesar eficazmente datos de texto mediante la línea de comandos es una habilidad que puede acelerar enormemente tu flujo de trabajo y darte más confianza en la administración de sistemas y la automatización de tareas.
Este artículo recopila comandos utilizados con frecuencia para analizar, filtrar, comparar y transformar datos de texto en LinuxCada comando incluye explicaciones y ejemplos. ¡Guárdalo como una práctica guía!
Visualización del contenido del archivo
cat -n file1
Muestra el contenido de un archivo con números de línea a la izquierda, útil para depurar y hacer referencias.
cat example.txt | awk 'NR%2==1'
Filtra y muestra solo las líneas impares de un archivo: útil para analizar registros o trabajar con plantillas.
Extraer columnas específicas
echo a b c | awk '{print $1,$3}'
Imprime la primera y la tercera parte de la línea (separadas por espacios): ayuda a extraer los elementos necesarios de los datos estructurados.
echo a b c | awk '{print $1}'
Imprime solo el primer elemento de la línea: una muestra mínima para el análisis.
Comparación de archivos para detectar diferencias
comm -3 file1 file2
Muestra las diferentes líneas entre dos archivos, excluyendo las líneas comunes, lo que resulta conveniente para sincronizar archivos de configuración.
comm -1 file1 file2
Muestra solo las líneas que faltan en file2 — se utiliza para comparar archivos originales y modificados.
comm -2 file1 file2
Muestra las líneas que faltan en file1 pero presente en file2 — útil para realizar el seguimiento de entradas agregadas.
sdiff file1 file2
Muestra una comparación línea por línea de dos archivos, ideal para detectar diferencias exactas.
Búsqueda dentro de archivos de texto
grep [0-9] /var/log/messages
Encuentra líneas que contienen al menos un dígito: útil para identificar rápidamente entradas con identificaciones, códigos, etc.
grep ^Aug /var/log/messages
Filtra las líneas que comienzan con "Ago", lo cual resulta útil cuando se trabaja con registros por fecha.
grep Aug /var/log/messages
Muestra todas las líneas que contienen "Aug" en cualquier lugar: una búsqueda rápida por palabra clave.
grep Aug -R /var/log/*
Busca recursivamente todos los archivos del directorio en busca de la cadena "Aug" (potente para escanear registros o configuraciones).
Fusionar archivos línea por línea
paste -d '+' file1 file2
Une líneas de dos archivos utilizando el símbolo "+" como delimitador: crea una vista de datos compacta.
paste file1 file2
Combina líneas correspondientes de dos archivos uno al lado del otro: útil para comparar datos.
Edición de texto con sed
sed 's/string1/string2/g' example.txt
Realiza un reemplazo global de string1 con string2 en todo el archivo — sustitución de patrones básicos.
sed '/ *#/d; /^$/d' example.txt
Elimina líneas vacías y líneas de comentarios (que comienzan con #) — útil para limpiar archivos de configuración.
sed '/^$/d' example.txt
Elimina solo las líneas vacías: condensa el texto sin afectar el contenido.
sed -e '1d' example.txt
Elimina la primera línea del archivo; se puede utilizar para omitir encabezados.
sed -n '/string1/p'
Muestra solo las líneas que contienen string1 — una forma rápida de extraer por patrón.
sed -e 's/string//g' example.txt
Elimina todas las apariciones de cadena del archivo: se utiliza para eliminar palabras clave o ruido.
sed -e 's/ *$//' example.txt
Elimina los espacios finales de las líneas: útil para limpiar antes de compartir archivos.
sed -n '5p;5q' example.txt
Muestra solo la quinta línea del archivo: equivalente a la selección de puntos.
sed -n '2,5p' example.txt
Imprime las líneas 2 a 5 inclusive, lo que resulta útil al analizar una parte del archivo.
sed -e 's/00*/0/g' example.txt
Reemplaza cualquier secuencia de ceros con un solo cero: ideal para normalizar datos numéricos.
Líneas de clasificación y filtrado
sort file1 file2
Ordena el contenido combinado de dos archivos alfabéticamente o numéricamente: una operación de análisis básica.
sort file1 file2 | uniq
Elimina líneas duplicadas después de la ordenación: limpia los datos repetidos.
sort file1 file2 | uniq -u
Muestra solo líneas únicas: ayuda a encontrar entradas que aparecen solo una vez.
sort file1 file2 | uniq -d
Muestra sólo líneas repetidas: útil para identificar duplicados.
Cambiar entre mayúsculas y minúsculas
echo 'word' | tr '[:lower:]' '[:upper:]'
Convierte todos los caracteres a mayúsculas, lo que resulta útil para la normalización de datos.
Estos comandos pueden usarse individualmente o combinarse en potentes canales de procesamiento de datos. Por ejemplo, puede leer un archivo, filtrar líneas por palabras clave, ordenar y eliminar duplicados, ¡todo con un solo comando de terminal!