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:
grep Aug /var/log/messages
: Busca la palabra «Aug» en el archivo ‘/var/log/messages’.grep ^Aug /var/log/messages
: Busca palabras que comienzan con «Aug» en ‘/var/log/messages’.grep [0-9] /var/log/messages
: Selecciona todas las líneas en ‘/var/log/messages’ que contienen números.grep Aug -R /var/log/
: Busca la cadena «Aug» en el directorio ‘/var/log’ y sus subdirectorios.sed 's/string1/string2/g' ejemplo.txt
: Reemplaza todas las ocurrencias de «string1» con «string2» en ‘ejemplo.txt’.sed '/^$/d' ejemplo.txt
: Elimina todas las líneas en blanco en ‘ejemplo.txt’.sed '/ *#/d; /^$/d' ejemplo.txt
: Elimina comentarios y líneas en blanco en ‘ejemplo.txt’.echo 'ejemplo' | tr '[:lower:]' '[:upper:]'
: Convierte «ejemplo» de minúsculas a mayúsculas.sed -e '1d' ejemplo.txt
: Elimina la primera línea de ‘ejemplo.txt’.sed -n '/string1/p'
: Muestra solo las líneas que contienen la palabra «string1».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’.