Comando awk en Linux: Procesar Texto, Filtrar y Editar Archivos
El comando awk en Linux es una poderosa herramienta, que permite procesar textos y hacer modificaciones en archivos. Puede interpretar pequeños scripts para procesar algún archivo o texto.
Existen otras variantes de AWK, tales como: BWK, GAWK y MAWK, que son implementaciones de diferentes desarrolladores con algunas mejoras.
El awk puede recibir comandos directamente como parámetros, o a través de un archivo, utilizando la opción "-f" seguida del nombre del archivo que contiene los comandos.
Ejemplo:
Dado un archivo con un texto separado por espacios, el comando "print" servirá para mostrar algo en pantalla. Las variables $0, $1, $2, $3 y $4 pueden imprimir todo el contenido ($0), o cada columna del texto:
Para imprimir todo el contenido del archivo:
$ awk '{print $0}' arquivo Leia Organa General ResistênciaLuke Skywalker Jedi ResistênciaDarth Vader Sith ImpérioObi-Wan Kenobi Jedi Resistência
Para imprimir solamente la primera columna:
$ awk '{print $1}' arquivo LeiaLukeDarthObi-Wan
Para imprimir la segunda columna:
$ awk '{print $2}' arquivo OrganaSkywalkerVaderKenobi
También es posible manipular el texto:
$ awk '{print $1 " " $2 " é um " $3 " da "$4}' arquivo Leia Organa é um General da ResistênciaLuke Skywalker é um Jedi da ResistênciaDarth Vader é um Sith da ImpérioObi-Wan Kenobi é um Jedi da Resistência
Para listar solamente los logins de los usuarios en el archivo /etc/passwd, se puede usar la opción "-F", indicando el delimitador:
$ awk -F':' '{ print $1 }' /etc/passwdrootbindaemonadm
El awk también puede ser usado para transformar un archivo de texto o CSV, en comandos SQL:
$ awk '{print "insert into usuario (nome,sobrenome,cargo,departamento) values (\"" $1 "\",\"" $2 "\",\"" $3 "\",\"" $4 "\");" }' arquivoinsert into usuario (nome,sobrenome,cargo,departamento) values ("Leia","Organa","General","Resistência");insert into usuario (nome,sobrenome,cargo,departamento) values ("Luke","Skywalker","Jedi","Resistência");insert into usuario (nome,sobrenome,cargo,departamento) values ("Darth","Vader","Sith","Império");insert into usuario (nome,sobrenome,cargo,departamento) values ("Obi-Wan","Kenobi","Jedi","Resistência");
El único cuidado que se debe tener es referenciar las comillas que componen el comando SQL con la contrabarra "\", para que sean interpretadas como texto y no como comillas.
El awk acepta las directivas if, for y while como en el lenguaje C, y también operadores matemáticos y muchas otras cosas. En fin, es una herramienta completa para transformar archivos.
Aprende mucho más sobre Linux en nuestro curso en línea. Puedes realizar la inscripción aquí. Si ya tienes una cuenta, o quieres crear una, simplemente ingresa o crea tu usuario aquí.
¿Te gustó? Comparte
Eso fue solo una pieza. El curso enseña el camino completo — desde tu primer comando hasta el día del examen.