Los desarrolladores de Linux siguen la filosofía de crear pequeños programas que hacen una tarea y la hacen bien. Tome las herramientas de procesamiento de texto de Linux como ejemplo, son livianas y tienen una funcionalidad modular. Aunque estas herramientas de manipulación de texto difieren en complejidad y funcionalidad, son útiles en un entorno donde la interfaz gráfica de usuario no está disponible.

El artículo cubre las mejores herramientas de Linux para leer archivos y usar expresiones regulares para realizar operaciones en el texto seleccionado. También cubre su funcionalidad más básica y ejemplos para una mejor comprensión.

1. grep

grep es una utilidad de manipulación de texto de Linux que busca una cadena de caracteres o patrones conocidos como expresiones regulares en un archivo o texto. La herramienta grep pertenece a la familia de utilidades que incluyen egrep, fgrep y grep, entre las cuales fgrep es la más rápida de todas, mientras que grep es la más fácil.

La sintaxis general para usar grep es la siguiente:

instagram viewer
grep -opciones cadena nombre de archivo

Por ejemplo, para buscar la palabra "raíz" en el archivo /etc/passwd:

raíz grep /etc/passwd

Algunos ejemplos estándar de línea de comandos para comenzar son:

Opciones Ejemplo Descripción
-C grep-c ./bashrc Cuente el número de líneas en las que existe la cadena.
-I grep -i ./bashrc Realizar una búsqueda sin distinción entre mayúsculas y minúsculas para la cadena especificada
-o grep-o Archivo Imprime solo la cadena coincidente
-l grep -l "contraseña" Imprime nombres de archivos en el directorio actual que coinciden con el patrón
-norte grep-n Archivo Imprime el número de línea a lo largo de la línea que contiene la cadena especificada
cadena1|cadena2 archivo grep "cadena1|cadena2" Encuentra e imprime múltiples cadenas de un archivo

Del mismo modo, puede utilizar el ^ metacharacter con el comando grep para mostrar todas las cadenas coincidentes que comienzan con ciertos caracteres.

Por ejemplo, el siguiente comando canaliza la salida del comando env como una entrada para grep y muestra las variables que comienzan con "HO":

env | grep^HO

Relacionado: Ejemplos prácticos de los comandos Grep de Linux

2. awk

awk es un poderoso lenguaje de secuencias de comandos y una herramienta de manipulación de texto de línea de comandos que puede realizar escaneos línea por línea y comparar líneas con patrones. La sintaxis básica del comando awk es una acción definida entre comillas simples y llaves seguidas del nombre del archivo.

awk '{acción}' nombre de archivo
awk '{patrón; acción}' nombre de archivo

La utilidad busca el archivo usando expresiones regulares y realiza la función definida en el parámetro de acción. awk ejecuta el script en cada línea si no establece un patrón, como se muestra a continuación:

awk '{imprimir $1}' awk_ejemplos.txt

...donde $1 muestra el primer campo de la awk_ejemplos.txt Archivo.

El siguiente comando realiza la función de impresión en el patrón dado reemplazando el segundo campo "Mundo" con "Alicia," y muestra la línea completa ($0):

echo "Hola Mundo" | awk '{$2="Alicia"; imprimir $0}'

Producción:

hola alicia

Del mismo modo, puede utilizar la función imprimir $0 del comando anterior para emular el grep funcionalidad.

awk '/john/{imprimir $0}' /etc/contraseña
juan: x: 1001:1001::/home/juan:/bin/sh

3. clasificar

sort es otra utilidad de línea de comandos de Linux que lo ayuda a mostrar el contenido del archivo de texto especificado en un formato ordenado. Por ejemplo, puede canalizar la salida del comando awk como entrada a la utilidad de clasificación de la siguiente manera:

awk '{imprimir $1}' awk_examples.txt | ordenar > ordenar_texto.txt
gato ordenar_texto.txt

Producción:

Relacionado: Cómo ordenar archivos de texto en Linux usando sort

4. sed

sed o stream editor toma la entrada como una secuencia de caracteres y realiza transformaciones de texto y filtrado (eliminar, sustituir y reemplazar) en el texto especificado.

Puede usarlo en un script y editar archivos de forma no interactiva. Por lo tanto, el propósito más básico de la utilidad es la sustitución de cadenas/caracteres. La sintaxis general es:

archivo sed 's/cadena/sustitución/opción'

Cree un archivo usando oraciones aleatorias para practicar y comprender el funcionamiento de esta utilidad.

Sustituyamos la aparición de la palabra "dos" en cada línea del archivo con "2" utilizando el -gramo bandera para el reemplazo global, de la siguiente manera:

sed 's/dos/2/g' sed_ejemplos.txt > sed_ejemplos2.txt

Del mismo modo, utilice el -D marca para eliminar una línea específica del archivo:

sed '2d' sed_ejemplos.txt

También puede reemplazar la cadena especificando un número de línea (4 s/dos/2/p) y solo imprimiendo la línea reemplazada de la siguiente manera:

sed -n '4 s/dos/2/p' sed_ejemplos2.txt

El -norte flag en el comando anterior deshabilita la impresión automática del flujo de entrada a la salida. Puede usar esta opción a su favor para reemplazar la funcionalidad de la utilidad grep con sed.

Por ejemplo, puede modificar el comando anterior al incluir solo un patrón de expresión regular /two/p tal que el -pags flag solo imprimirá las líneas en el flujo de salida estándar.

sed -n '/dos/p' sed_ejemplos2.txt

Relacionado: Estos 10 ejemplos de sed lo convertirán en un usuario avanzado de Linux

5. cortar

El corte es otra utilidad de línea de comandos que corta/extrae partes de texto de una línea o archivo. Corta el texto en función de un campo, carácter o posición de byte especificado y canaliza el resultado a la salida estándar.

La utilidad acepta la siguiente sintaxis:

cortar  Archivo

Utilizar el -B opción para cortar una sección o contenido usando un byte específico o un rango de bytes:

cortar -b 1 cortar_ejemplos.txt

Utilizar el -C indicador para extraer texto especificando las posiciones de los caracteres:

cortar -c 1,3,5 cortar_ejemplos.txt

Por último, también puede extraer texto especificando campos con el -F opción y -D para espacio o delimitador de campo:

cortar -d " " -f 1 cortar_ejemplos.txt

Aquí está la lista de rangos con ejemplos y descripciones que puede utilizar con el personaje. -C y byte -B opciones:

Rango Ejemplo Descripción
norte- cortar -c 7- nombre de archivo Extraiga el carácter del número entero n hasta el final de la línea
Nuevo Méjico cortar -b 7-15 nombre de archivo Extrae del número entero n-m de cada línea del archivo de entrada
-metro cortar -c -7 nombre de archivo Extrae líneas a partir de m hasta el final de la línea

Tenga en cuenta que no puede definir los rangos para la extracción de texto usando el campo -F opción.

Manipulación de texto con comandos de Linux

Linux ofrece muchos programas y herramientas para manejar y trabajar con archivos o texto. Es posible que no sea necesario aprenderlos todos, ya que puede llenar el vacío fácilmente con otro una vez que tenga un buen control sobre uno, como usar sed como grep o awk como grep, pero esto no puede ser cierto para todas las herramientas.

Además, los comandos de Linux tienen una curva de aprendizaje empinada, pero una vez que desarrollas la habilidad, pueden resultar muy útiles y efectivos en la vida de cualquier usuario de Linux, especialmente un administrador de sistemas.

Las 8 mejores aplicaciones de terminal para mejorar la productividad de Linux

¿Cansado de la vieja y aburrida aplicación de terminal que viene preinstalada en Linux? Echa un vistazo a estas ocho aplicaciones de terminal que mejorarán tu flujo de trabajo.

Leer siguiente

CuotaPíoCorreo electrónico
Temas relacionados
  • linux
  • Comandos Linux
Sobre el Autor
Rumaisa Niazi (7 artículos publicados)

Rumaisa es escritora independiente en MUO. Ha desempeñado muchas funciones, desde matemática hasta entusiasta de la seguridad de la información, y ahora trabaja como analista de SOC. Sus intereses incluyen leer y escribir sobre nuevas tecnologías, distribuciones de Linux y todo lo relacionado con la seguridad de la información.

Más de Rumaisa Niazi

Suscríbete a nuestro boletín

¡Únase a nuestro boletín para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Haga clic aquí para suscribirse