Manipulación de Texto en el Terminal: Sintaxis General y Ejemplos


El terminal de comandos de Unix/Linux es una herramienta poderosa para la manipulación de texto. Aquí te presentamos una serie de comandos y sintaxis generales para realizar diversas operaciones con texto.

1. Pipe (|) – Sintaxis General para la Manipulación de Texto

La tubería o pipe (|) se utiliza para tomar la salida de un comando y enviarla como entrada a otro. Esto permite encadenar comandos para manipular texto de diversas formas. La sintaxis general es:

comando1 | comando2

Donde la salida de comando1 se convierte en la entrada de comando2. Ejemplo:

cat file1 file2 | grep "palabra" > resultado.txt

En este caso, cat concatena los contenidos de file1 y file2, y luego grep busca la palabra «palabra» en la salida combinada, y finalmente se redirige el resultado a resultado.txt.

2. Redirección a un Archivo Nuevo

Puedes redirigir la salida de un comando a un archivo nuevo usando el operador >. La sintaxis general es:

comando < entrada.txt > salida.txt

Donde entrada.txt es el archivo de entrada y salida.txt es el archivo donde se escribirá la salida del comando. Ejemplo:

cat file1 | grep "patrón" > resultado.txt

En este caso, el resultado de grep se escribirá en resultado.txt.

3. Añadir a un Archivo Existente

Para añadir la salida de un comando a un archivo existente, usa >>. La sintaxis general es:

comando < entrada.txt >> salida.txt

Donde entrada.txt es el archivo de entrada y salida.txt es el archivo al que se añadirá la salida del comando. Ejemplo:

cat file1 | grep "patrón" >> resultado_existente.txt

Esto agrega la salida de grep al final de resultado_existente.txt.

Ejemplos Adicionales:

  1. grep Aug /var/log/messages: Busca la palabra «Aug» en el archivo ‘/var/log/messages’.
  2. grep ^Aug /var/log/messages: Busca palabras que comienzan con «Aug» en ‘/var/log/messages’.
  3. grep [0-9] /var/log/messages: Selecciona todas las líneas en ‘/var/log/messages’ que contienen números.
  4. grep Aug -R /var/log/: Busca la cadena «Aug» en el directorio ‘/var/log’ y sus subdirectorios.
  5. sed 's/string1/string2/g' ejemplo.txt: Reemplaza todas las ocurrencias de «string1» con «string2» en ‘ejemplo.txt’.
  6. sed '/^$/d' ejemplo.txt: Elimina todas las líneas en blanco en ‘ejemplo.txt’.
  7. sed '/ *#/d; /^$/d' ejemplo.txt: Elimina comentarios y líneas en blanco en ‘ejemplo.txt’.
  8. echo 'ejemplo' | tr '[:lower:]' '[:upper:]': Convierte «ejemplo» de minúsculas a mayúsculas.
  9. sed -e '1d' ejemplo.txt: Elimina la primera línea de ‘ejemplo.txt’.
  10. sed -n '/string1/p': Muestra solo las líneas que contienen la palabra «string1».
  11. sed -r 's/(cadena1)(cadena2)/\2\1/g': Utiliza expresiones regulares extendidas para intercambiar el orden de dos cadenas de texto en todas las instancias en ‘ejemplo.txt’.