Diferencia entre sed y awk

los diferencia principal entre sed y awk es eso sed es una utilidad de comando que funciona con flujos de caracteres para buscar, filtrar y procesar texto mientras awk más potente y robusto que sed con construcciones de programación sofisticadas como if / else, while, do / while, etc..

Un sistema operativo funciona como la interfaz entre el usuario y los dispositivos de hardware. La computadora no puede realizar ninguna tarea sin un sistema operativo. Hay muchos sistemas operativos y UNIX es uno de ellos. Es un sistema operativo estable que soporta entornos multiusuario. Linux es otro sistema operativo popular basado en UNIX. Tanto UNIX como Linux proporcionan una potente interfaz de línea de comando (CLI). Los usuarios pueden ingresar los comandos a la CLI para realizar diversas tareas. Hay una gran cantidad de comandos, y sed y awk son dos de ellos. Estos comandos ayudan a filtrar y transformar el texto..

Áreas clave cubiertas

1. Que es sed
     - Definición, ejemplos
2. Que es awk
    - Definición, ejemplos
3. ¿Cuál es la diferencia entre sed y awk?
     - Comparación de diferencias clave

Términos clave

sed, awk, sistema operativo

Que es sed

El comando sed Permite modificar y filtrar archivos de texto..

Figura 1: CLI para proporcionar comandos en Linux y UNIX

sed '1,3 d' test1.txt

El comando anterior mostrará las líneas después de la línea 3. No mostrará 1, 2, 3 líneas de la prueba1.txt.

sed 's / abc / cab /' test1.txt

El comando anterior sustituirá a cab en lugar de abc en el archivo test1.txt.

sed 's / one / 1 /' test1.txt

El comando anterior sustituirá 1 en lugar de uno en el archivo test1.txt.

sed '1,2! d 'test1.txt

Esto solo mostrará la línea 1 y la línea 2.

Esos son algunos ejemplos para sed. En general, sed permite a los usuarios realizar filtros y búsquedas..

Que es awk

El comando awk Permite buscar datos en un archivo e imprimir datos en la consola. Si un archivo contiene varias columnas, también es posible encontrar datos en columnas específicas. Además, ayuda a tareas tales como búsqueda, ejecución condicional, actualización y filtrado..

awk 'print' file1.txt

El comando anterior mostrará todo el contenido en el archivo1.txt.  

Supongamos que el archivo file1.txt contiene varias columnas.

awk 'print $ 1' file1.txt

Este comando imprime la primera columna del archivo1.txt. Por defecto, el comando awk considera un espacio en blanco como el separador.

awk 'print $ 1 “” $ 3' file1.txt

El comando anterior imprime la primera y la tercera columna de file1.txt con un espacio en medio.

awk 'imprimir $ 1. $ 3 'file1.txt

El comando anterior imprimirá la concatenación de la primera y la tercera columna.

awk '/ example / print' file1.txt

El comando anterior imprime todas las líneas en el archivo file1.txt que contiene la palabra ejemplo.

awk '/ [0-9] / print' file1.txt

El comando anterior imprime todas las líneas en el archivo file1.txt que contiene números del 0 al 9.

awk '/ ^ [0-9] / print' file1.txt

Esto imprimirá las líneas en file1.txt que comienzan con un número.

awk '/ [0-9] $ / print' file1.txt

Esto imprimirá las líneas en file1.txt que terminan con un número.

También es posible verificar los condicionales de la siguiente manera.

awk 'if ($ 1 ~ / 123 /) print' file1.txt

Esto imprimirá la línea si, el contenido comienza con 123.

awk 'if ($ 2 ~ / [0-9] /) print' file1.txt

Esto imprimirá las líneas en la columna dos que comienzan con un número.

Esos son algunos ejemplos de awk..

En general, awk es un comando poderoso para procesar y analizar archivos de texto.

Diferencia entre sed y awk

Definición

Sed es una utilidad de línea de comandos que analiza y transforma texto, utilizando un lenguaje de programación simple y compacto. El awk es una utilidad de línea de comandos diseñada para el procesamiento de texto que permite escribir programas efectivos en forma de declaraciones..

Funcionalidad

Tanto sed como awk permiten el procesamiento de flujos de caracteres para tareas como la transformación de texto. El awk es más potente y robusto que el sed. Es similar a un lenguaje de programación..

Complejidad

El sed es simple y limitado, mientras que awk es más complejo y versátil.

Conclusión

La diferencia entre sed y awk es que sed es una utilidad de comando que funciona con flujos de caracteres para buscar, filtrar y procesar texto mientras que es más potente y robusto que sed con construcciones de programación sofisticadas como if / else, while, do / while, etc..

Referencia:

1. Comando AWK: Sesión 1: Seleccionar datos de columna, Testing World, 8 de febrero de 2017, disponible aquí.
2. Utilizando la utilidad AWK de Linux, Frank the Programmer, 25 de junio de 2011, disponible aquí.
3. Tutorial Linux / Unix || Comandos SED en Linux por Shiva, Durga Software Solutions, 30 de octubre de 2016, disponibles aquí.

Imagen de cortesía:

1. "Foremost on Xubuntu 11.04" Por Kris Kendall, Jesse Kornblum y Nick Mikus - Captura de pantalla de la salida de -h de Foremost (dominio público) a través de Commons Wikimedia.