Saltar al contenido

¿Cuáles son las diferencias entre grep, awk y sed?

Hacemos una revisión completa cada reseña en nuestro espacio con la meta de enseñarte siempre la información con la mayor veracidad y certera.

Solución:

Definición corta:

grep: busca términos específicos en un archivo

#usage
$ grep This file.txt
Every line containing "This"
Every line containing "This"
Every line containing "This"
Every line containing "This"

$ cat file.txt
Every line containing "This"
Every line containing "This"
Every line containing "That"
Every line containing "This"
Every line containing "This"

Ahora awk y sed son completamente diferentes a grep.
awk y sed son procesadores de texto. No solo tienen la capacidad de encontrar lo que está buscando en el texto, también tienen la capacidad de eliminar, agregar y modificar el texto (y mucho más).

awk se utiliza principalmente para la extracción de datos y la presentación de informes. sed es un editor de transmisiones
Cada uno de ellos tiene su propia funcionalidad y especialidades.

Ejemplo
Sed

$ sed -i 's/cat/dog/' file.txt
# this will replace any occurrence of the characters 'cat' by 'dog'

Awk

$ awk 'print $2' file.txt
# this will print the second column of file.txt

Básico awk uso:
Calcular suma / promedio / máximo / mínimo / etc. lo que puedas necesitar.

$ cat file.txt
A 10
B 20
C 60
$ awk 'BEGIN sum=0; count=0; OFS="t" sum+=$2; count++ END print "Average:", sum/count' file.txt
Average:    30

Te recomiendo que leas este libro: Sed & Awk: 2da ed.

Le ayudará a convertirse en un usuario competente de sed / awk en cualquier entorno tipo Unix.

Grep es útil si desea buscar rápidamente líneas que coincidan en un archivo. También puede devolver alguna otra información simple como números de línea coincidentes, recuento de coincidencias y listas de nombres de archivos.

Awk es un lenguaje de programación completo creado en torno a la lectura de archivos de estilo CSV, el procesamiento de registros y, opcionalmente, la impresión de un conjunto de datos de resultados. Puede hacer muchas cosas, pero no es la herramienta más fácil de usar para tareas simples.

Sed es útil cuando desea realizar cambios en un archivo basándose en expresiones regulares. Le permite hacer coincidir fácilmente partes de líneas, realizar modificaciones e imprimir resultados. Es menos expresivo que awk, pero eso lo hace más fácil de usar para tareas simples. Tiene muchos operadores más complicados que puede usar (creo que incluso está completo), pero en general no usará esas funciones.

Solo quiero mencionar una cosa, hay muchas herramientas que pueden hacer procesamiento de texto, por ejemplo, ordenar, cortar, dividir, unir, pegar, comm, uniq, columna, rev, tac, tr, nl, pr, head, tail …..

son muy útiles pero tienes que aprender sus opciones, etc.

Una forma perezosa (no la mejor) de aprender el procesamiento de texto podría ser: solo aprenda grep, sed y awk. Con estas tres herramientas, puede resolver casi el 99% de los problemas de procesamiento de texto y no necesita memorizar los diferentes cmds y opciones anteriores. 🙂

Y, si ha aprendido y usado los tres, sabrá la diferencia. En realidad, la diferencia aquí significa qué herramienta es buena para resolver qué tipo de problema.

una forma más perezosa podría ser aprender un lenguaje de secuencia de comandos (python, perl o ruby) y hacer todos los procesamientos de texto con él.

Si te apasiona este mundo, eres capaz de dejar un ensayo acerca de qué te ha parecido este ensayo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *