{"id":52965,"date":"2026-05-14T17:09:52","date_gmt":"2026-05-14T10:09:52","guid":{"rendered":"\/es\/tutoriales\/?p=52965"},"modified":"2026-05-14T17:10:47","modified_gmt":"2026-05-14T10:10:47","slug":"comando-awk-en-linux","status":"publish","type":"post","link":"\/es\/tutoriales\/comando-awk-en-linux","title":{"rendered":"El comando awk en Linux: c\u00f3mo entender la sintaxis, las opciones y los ejemplos m\u00e1s comunes"},"content":{"rendered":"<p>El comando <strong>awk<\/strong> de Linux se utiliza ampliamente para tareas de procesamiento de texto. Puedes usar este comando directamente en la terminal para extraer datos de un archivo de texto, buscar patrones y realizar acciones sencillas, como dar formato al texto.<\/p><p>Este comando tambi&eacute;n es un lenguaje de programaci&oacute;n, lo que significa que puedes usarlo para escribir programas completos. Sin embargo, este art&iacute;culo se centrar&aacute; en lo que puedes hacer con el comando <strong>awk<\/strong> en la terminal para manipular archivos de texto. Cubriremos la sintaxis, los casos de uso m&aacute;s comunes y responderemos las preguntas m&aacute;s frecuentes.<\/p><p>\n\n\n\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-syntax-of-the-awk-command\">Sintaxis del comando awk<\/h2><p>En esencia, el comando <strong>awk<\/strong> recibe dos tipos de entrada: un archivo de texto y un conjunto de instrucciones. Esto se refleja en la sintaxis b&aacute;sica:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">awk '{ acci&oacute;n }' filename.txt<\/pre><ul class=\"wp-block-list\">\n<li>La<strong> acci&oacute;n<\/strong> corresponde a lo que quieres hacer en tu archivo de texto.<\/li>\n\n\n\n<li><strong>filename<\/strong> es el archivo de texto.<\/li>\n<\/ul><p>En su nivel m&aacute;s b&aacute;sico, la sintaxis del comando <strong>awk<\/strong> es muy simple. Todo lo que necesitas es un archivo de texto con el que puedas interactuar y una acci&oacute;n para realizar.<\/p><h3 class=\"wp-block-heading\" id=\"h-options-and-syntax-variations\">Opciones y variaciones de sintaxis<\/h3><p>Tu comando b&aacute;sico de <strong>awk<\/strong> puede ampliarse a&uacute;n m&aacute;s si a&ntilde;ades opciones:<\/p><ul class=\"wp-block-list\">\n<li><strong>-F:<\/strong> define un separador de campos.<\/li>\n\n\n\n<li><strong>-v:<\/strong> define variables.<\/li>\n\n\n\n<li><strong>-f:<\/strong> lee el script desde un archivo.<\/li>\n<\/ul><p>Como <strong>awk<\/strong> usa los espacios en blanco, ya sean espacios o tabulaciones, como delimitador predeterminado entre los campos de un archivo o de la entrada, -F le indica c&oacute;mo interpretar las columnas o los campos de cada l&iacute;nea seg&uacute;n un delimitador. En otras palabras, cuando usas <strong>-F<\/strong>, <strong>awk<\/strong> sabe c&oacute;mo dividir cada l&iacute;nea en partes (campos).<br><\/p><p>Con el documento que usaste antes, puedes usar <strong>-F<\/strong> como argumento de l&iacute;nea de comandos para definir los dos puntos como separador de campos.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">awk -F':' '\/casa\/ { print \"ID:\", $1, \"- Tipo:\", $2, \"- Ubicaci&oacute;n:\", $3 }' filename.txt<\/pre><p><strong>awk<\/strong> identifica el separador e interpreta los campos seg&uacute;n corresponda:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ID: 1. Tipo: Casa grande. Ubicaci&oacute;n: Nueva York.\n\nID: 2. Tipo: Casa peque&ntilde;a. Ubicaci&oacute;n: Los &Aacute;ngeles.\n\nID: 4. Tipo: Casa flotante. Ubicaci&oacute;n: Seattle<\/pre><p>Para asignar una variable desde la l&iacute;nea de comandos, puedes ejecutar:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">awk -v word=\"casa\" '$0 ~ word { print $0 }' filename.txt<\/pre><p>Ahora, <strong>word<\/strong> es una variable que puedes usar en tu acci&oacute;n.<\/p><p>Por &uacute;ltimo, la opci&oacute;n <strong>-f<\/strong> te sirve para ejecutar varios comandos de <strong>awk<\/strong> a la vez desde la l&iacute;nea de comandos dentro de un solo script. Imagina que tienes un archivo <strong>simple_script.awk<\/strong> que contiene lo siguiente:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Muestra el n&uacute;mero de l&iacute;nea y el contenido de la l&iacute;nea si la l&iacute;nea contiene la palabra \"casa\"\n\n$0 ~ \/casa\/ { print NR, $0 }\n\n# Muestra un mensaje antes de cada salida\n\nBEGIN { print \"Empezando a buscar 'casa'...\" }<\/pre><p>Puedes ejecutar esto con:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">awk -f simple_script.awk filename.txt<\/pre><p>Y tendr&aacute;s:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Empezando a buscar 'casa'...\n1: Casa grande: Nueva York\n2: Casa peque&ntilde;a: Los &Aacute;ngeles\n4: Casa flotante: Seattle<\/pre><h3 class=\"wp-block-heading\" id=\"h-creating-a-sample-file\">Crear un archivo de muestra<\/h3><p>Antes de hablar sobre casos de uso, tendr&aacute;s que crear un archivo de ejemplo.<\/p><p>Para este ejemplo, seguiremos usando casas y ubicaciones como ejemplos, pero crea un archivo de entrada completamente nuevo.<\/p><p>Para hacerlo, solo usa el comando <strong>touch<\/strong> para crear un archivo nuevo:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">touch casas.txt<\/pre><p>Como el archivo est&aacute; vac&iacute;o, necesitamos llenarlo. Cambiemos tambi&eacute;n las viviendas de nuestro primer ejemplo: podr&iacute;amos querer una casa peque&ntilde;a en Vermont, una casa grande en San Diego, un apartamento en Nueva York y una casa flotante en Londres. Tambi&eacute;n a&ntilde;adiremos los metros cuadrados de cada hogar.<\/p><p>Puedes usar tu editor de texto preferido, como <strong>nano<\/strong> o <strong>vim<\/strong>, o a&ntilde;adir datos directamente con <strong>echo<\/strong>.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">echo -e \"1:Casa peque&ntilde;a:Vermont:100 m&sup2;\\n2:Casa grande:San Diego:300 m&sup2;\\n3:Apartamento:Nueva York:70 m&sup2;\\n4:Casa flotante:Londres:40 m&sup2;\" &gt; casas.txt<\/pre><p>Ahora, <strong>casas.txt<\/strong> est&aacute; listo para que lo uses en nuestros ejemplos de <strong>awk<\/strong>.<\/p><h2 class=\"wp-block-heading\" id=\"h-examples-of-the-awk-command\">Ejemplos del comando awk<\/h2><p>Veamos c&oacute;mo podemos usar el comando <strong>awk<\/strong> en nuestro archivo <strong>casas.txt<\/strong> en varios casos de uso. A continuaci&oacute;n, encontrar&aacute;s una lista de situaciones comunes.<\/p><h3 class=\"wp-block-heading\" id=\"h-1-printing-all-lines-of-a-file\">1. Mostrar todas las l&iacute;neas de un archivo<\/h3><p>Para mostrar todas las l&iacute;neas de un archivo de entrada, ejecuta el siguiente comando:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">awk '{print}' casas.txt<\/pre><p>Esto devolver&aacute; lo siguiente:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">1:Casa peque&ntilde;a:Vermont:100 m&sup2;\n\n2:Casa grande:San Diego:300 m&sup2;\n\n3:Apartamento:Nueva York:70 m&sup2;\n\n4:Casa flotante:Londres:40 m&sup2;<\/pre><h3 class=\"wp-block-heading\" id=\"h-2-printing-a-specific-column\">2. Mostrar una columna espec&iacute;fica<\/h3><p>Como ya vimos, <strong>awk<\/strong> divide cada l&iacute;nea de un archivo de texto en campos o columnas usando espacios en blanco como separador. En nuestro caso, estamos usando dos puntos (:). Para mostrar columnas espec&iacute;ficas, necesitamos saber la posici&oacute;n de la columna dentro de la l&iacute;nea.<br><br>Imaginemos que quieres mostrar la columna que contiene los metros cuadrados de cada casa. Para hacer esto, ejecutaremos:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">awk -F':' '{print $4}' casas.txt<\/pre><p>El resultado ser&aacute;:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">100 m&sup2;\n\n300 m&sup2;\n\n70 m&sup2;\n\n40 m&sup2;<\/pre><p>Aqu&iacute;:<\/p><ul class=\"wp-block-list\">\n<li><strong>-F&rsquo;:&rsquo;<\/strong> le dice a awk que use dos puntos (:) como separador de campos.<\/li>\n\n\n\n<li><strong>$4<\/strong> muestra el cuarto campo (los metros cuadrados).<\/li>\n<\/ul><h3 class=\"wp-block-heading\" id=\"h-3-displaying-lines-that-match-a-pattern\">3. Mostrar las l&iacute;neas que coinciden con un patr&oacute;n<\/h3><p>Imagina que solo te interesan las l&iacute;neas de tu archivo de entrada que contienen una determinada palabra o que coinciden con un cierto patr&oacute;n. Para hacer esto, tendr&aacute;s que usar <a href=\"https:\/\/opensource.com\/article\/19\/11\/how-regular-expressions-awk\" target=\"_blank\" rel=\"noopener\">expresiones regulares<\/a>.<\/p><p>Las expresiones regulares son una t&eacute;cnica de coincidencia de patrones y pueden usarse para crear patrones complejos que extraigan partes muy espec&iacute;ficas de un texto. Aqu&iacute; usaremos una expresi&oacute;n regular muy sencilla.<\/p><p>Por ejemplo, si quieres mostrar toda la l&iacute;nea que contiene la palabra &ldquo;Casa flotante&rdquo; de tu archivo de entrada, ejecutar&aacute;s:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">awk -F ':' '\/Casa flotante\/ {print}' casas.txt<\/pre><p>Lo que te dar&aacute;:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">4:Casa flotante:Londres:40 m&sup2;<\/pre><p><strong>\/Casa flotante\/<\/strong> es el patr&oacute;n de expresi&oacute;n regular: le estamos indicando al sistema que busque todo el texto que coincida con la palabra &ldquo;Casa flotante&rdquo;.<\/p><h3 class=\"wp-block-heading\" id=\"h-4-extracting-and-printing-columns-using-field-manipulation\">4. Extraer e mostrar columnas mediante la manipulaci&oacute;n de campos<\/h3><p>Tambi&eacute;n puedes modificar los campos dentro de tu archivo de texto y mostrarlos en un orden diferente.<\/p><p>Supongamos que quieres mostrar cada l&iacute;nea de nuestro archivo de texto como un anuncio inmobiliario. Puedes hacer lo siguiente:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">awk -F ':' '{print \"En venta:\", $2, \"en\", $3, \".\", \"Superficie:\", $4}' casas.txt<\/pre><p>Al ejecutar este comando, se mostrar&aacute;:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">awk -F ':' '{print \"En venta:\", $2, \"en\", $3, \".\", \"Superficie:\", $4}' casas.txt\n\nEn venta: Casa peque&ntilde;a en Vermont . Superficie: 100 m&sup2;\nEn venta: Casa grande en San Diego . Superficie: 300 m&sup2;\nEn venta: Apartamento en Nueva York . Superficie: 70 m&sup2;\nEn venta: Casa flotante en Londres . Superficie: 40 m&sup2;<\/pre><p>El comando te permite reorganizar y dar formato a los campos como quieras. Por ejemplo, podr&iacute;as intercambiar <strong>$2<\/strong> y <strong>$3<\/strong> para mostrar la ubicaci&oacute;n antes del tipo de casa.<\/p><h3 class=\"wp-block-heading\" id=\"h-5-calculating-mathematical-operations\">5. Calcular operaciones matem&aacute;ticas<\/h3><p>El comando <strong>awk<\/strong> puede realizar c&aacute;lculos.<\/p><p>A&ntilde;adamos una columna a nuestros datos que contenga el precio de cada propiedad.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">awk -F ':' '{print $0, \": $\", NR * 100000}' casas.txt &gt; precio_casas.txt<\/pre><p>Este comando crea un archivo <strong>precio_casas.txt<\/strong> con los precios de todas las propiedades. Para simplificar, inventaremos precios seg&uacute;n el n&uacute;mero de l&iacute;nea con: <strong>$<\/strong>, <strong>NR * 100000<\/strong>.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">1: Casa peque&ntilde;a:Vermont: 100 m&sup2;: $100000\n\n2:Casa grande:San Diego:300 m&sup2;: $200000\n\n3:Apartamento:Nueva York:70 m&sup2;: $300000\n\n4:Casa flotante:Londres:40 m&sup2;:$400000<\/pre><p>Ahora que tenemos algunos n&uacute;meros, podemos probar operaciones matem&aacute;ticas.<\/p><p>Para calcular el coste total de las propiedades, sumar&aacute;s la &uacute;ltima columna, donde se guardan los precios <strong>($5)<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">awk -F ':' '{gsub(\"[$,]\", \"\", $5); sum += $5} END {print \"Coste total:\", sum}' precio_casas.txt<\/pre><p>Lo que se muestra:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Coste total: 1000000<\/pre><p>Aqu&iacute;:<\/p><ul class=\"wp-block-list\">\n<li><strong>gsub(&ldquo;[$,]&rdquo;, &ldquo;&rdquo;, $5)<\/strong> elimina cualquier signo de d&oacute;lar o coma del precio en el quinto campo para permitir un c&aacute;lculo correcto.<\/li>\n\n\n\n<li><strong>sum += $5<\/strong> suma el precio al total acumulado.<\/li>\n\n\n\n<li><strong>END {print &ldquo;Coste total:&rdquo;, sum}<\/strong> muestra el coste total despu&eacute;s de procesar todas las l&iacute;neas.<\/li>\n<\/ul><h3 class=\"wp-block-heading\" id=\"h-6-processing-data-based-on-conditional-statements\">6. Procesamiento de datos seg&uacute;n instrucciones condicionales<\/h3><p>Para calcular solo el precio de las propiedades seleccionadas, por ejemplo, el apartamento en Nueva York y la casa flotante en Londres, tendr&aacute;s que usar instrucciones condicionales.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">awk -F ':' '($2 == \"Apartamento\" || $2 == \"Casa flotante\") {gsub(\"[$,]\", \"\", $5); sum += $5} END {print \"NY + LDN, costo total:\", sum}' precio_casas.txt<\/pre><p>En este ejemplo:<\/p><ul class=\"wp-block-list\">\n<li><strong>$2 == &ldquo;Apartmento&rdquo; || $2 == &ldquo;Casa flotante&rdquo;<\/strong> es la condici&oacute;n que garantiza que solo se procesen las l&iacute;neas que contienen &ldquo;Apartmento&rdquo; o &ldquo;Casa flotante&rdquo;. <strong>||<\/strong> es el s&iacute;mbolo condicional de &laquo;o&raquo;.<\/li>\n\n\n\n<li><strong>gsub(&ldquo;[$,]&rdquo;, &ldquo;&rdquo;, $5)<\/strong> elimina los signos de d&oacute;lar o las comas.<\/li>\n\n\n\n<li><strong>sum += $5<\/strong> a&ntilde;ade el precio a la suma.<\/li>\n\n\n\n<li><strong>END {print &ldquo;NY + LDR, coste total:&rdquo;, sum}<\/strong> muestra el coste total de las propiedades seleccionadas.<\/li>\n<\/ul><p>El comando anterior mostrar&aacute;:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">NY + LDR, coste total: 700000<\/pre><p>Usando nuestro archivo de entrada original <strong>casas.txt<\/strong>, puedes usar otra instrucci&oacute;n condicional para, por ejemplo, mostrar una propiedad solo si tiene m&aacute;s de 50 m&sup2;:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">awk -F ':' '{if ($4 &gt; 50) print $2, \"en\", $3, \":\", \"OK\"; else print $2, \"en\", $3, \":\", \"demasiado peque&ntilde;a.\"}' casas.txt<\/pre><p>El comando anterior usa una instrucci&oacute;n condicional simple if-else separada por un punto y coma (;). Se mostrar&aacute;:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">awk -F ':' '{if ($4 &gt; 50) print $2, \"en\", $3, \":\", \"OK\"; else print $2, \"en\", $3, \":\", \"demasiado peque&ntilde;a.\"}' casas.txt\n\nCasa peque&ntilde;a en Vermont : demasiado peque&ntilde;a\nCasa grande en San Diego : demasiado peque&ntilde;a\nApartamento en Nueva York : OK\nCasa flotante en Londres : demasiado peque&ntilde;a<\/pre><p>Puedes encontrar todas las instrucciones condicionales en el <a href=\"https:\/\/www.gnu.org\/software\/gawk\/manual\/gawk.html#Index\" target=\"_blank\" rel=\"noopener\">manual del usuario de GNU Awk<\/a>.<\/p><h3 class=\"wp-block-heading\" id=\"h-7-using-built-in-variables\">7. Uso de variables integradas<\/h3><p>El comando<strong> awk<\/strong> tiene varias variables integradas, tanto num&eacute;ricas como de texto, que est&aacute;n predefinidas en el lenguaje.<\/p><p>Aqu&iacute; tienes las m&aacute;s usadas:<\/p><ul class=\"wp-block-list\">\n<li><strong>NR<\/strong> (n&uacute;mero de registros)<\/li>\n\n\n\n<li><strong>NF<\/strong> (n&uacute;mero de campos)<\/li>\n\n\n\n<li><strong>FS<\/strong> (separador de campos)<\/li>\n\n\n\n<li><strong>OFS<\/strong> (separador de campos de salida)<\/li>\n\n\n\n<li><strong>FILENAME <\/strong>(nombre de archivo)<\/li>\n\n\n\n<li><strong>RS<\/strong> (separador de registros)<\/li>\n<\/ul><p>Por ejemplo, para mostrar el n&uacute;mero de campos en cada l&iacute;nea, ejecutar&iacute;as:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">awk -F ':' '{print \"La l&iacute;nea\", NR, \"tiene\", NF, \"campos\"}' casas.txt<\/pre><p>Lo que producir&iacute;a:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">La l&iacute;nea 1 tiene 4 campos\nLa l&iacute;nea 2 tiene 4 campos\nLa l&iacute;nea 3 tiene 4 campos\nLa l&iacute;nea 4 tiene 4 campos<\/pre><p>Si quieres usar <strong>OFS<\/strong> para especificar el separador entre campos al mostrar la salida, puedes ejecutar:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">awk 'BEGIN {OFS=\"XXXX\"} {print $1, $2, $3, $4}' casas.txt<\/pre><p>Lo que se mostrar&aacute;:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">1:CasaXXXXpeque&ntilde;a:Vermont:100XXXXm&sup2;\n2:CasaXXXXgrande:SanXXXXDiego:300XXXXm&sup2;\n3:Apartamento:NuevaXXXXYork:70XXXXm&sup2;XXXX\n4:CasaXXXXflotante:Londres:40XXXXXXXXm&sup2;XXXXXXXX<\/pre><h3 class=\"wp-block-heading\" id=\"h-8-using-user-defined-functions\">8. Uso de funciones definidas por el usuario<\/h3><p>Con el comando <strong>awk<\/strong>, puedes manipular tu texto de forma m&aacute;s eficiente al usar funciones directamente en la terminal.<\/p><p>Por ejemplo, para convertir la segunda columna (tipos de casas) a min&uacute;sculas, ejecutar&aacute;s:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">awk -F ':' '{print tolower($2)}' casas.txt<\/pre><p>Lo que produce:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">casa peque&ntilde;a\n\ncasa grande\n\napartamento\n\ncasa flotante<\/pre><p>Aqu&iacute;, <strong>tolower($2<\/strong>) es la funci&oacute;n que se est&aacute; usando.<\/p><p>Si quieres reemplazar la palabra &ldquo;casa&rdquo; por &ldquo;mansi&oacute;n&rdquo; en la segunda columna:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">awk -F ':' '{gsub(\/casa\/, \"mansi&oacute;n\", $2); print $2}' casas.txt<\/pre><p>Donde <strong>gsub(\/casa\/, &ldquo;mansi&oacute;n&rdquo;, $2)<\/strong> es la funci&oacute;n.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Peque&ntilde;a mansi&oacute;n\n\nGran mansi&oacute;n\n\nApartamento\n\nCasa flotante<\/pre><figure class=\"wp-block-image size-large\"><a href=\"\/es\/servidor-vps\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/02\/ES-VPS-hosting_in-text-banner.png\/public\" alt=\"\" class=\"wp-image-29287\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/02\/ES-VPS-hosting_in-text-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/02\/ES-VPS-hosting_in-text-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/02\/ES-VPS-hosting_in-text-banner.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/02\/ES-VPS-hosting_in-text-banner.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/02\/ES-VPS-hosting_in-text-banner.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h2 class=\"wp-block-heading\" id=\"h-conclusion\">Conclusi&oacute;n<\/h2><p>El comando <strong>awk<\/strong> de Linux es una herramienta de procesamiento potente que los desarrolladores pueden usar para extraer, manipular y procesar datos de archivos de texto. Puede ser especialmente &uacute;til para tareas como analizar registros o incluso archivos CSV, ya que admite operaciones matem&aacute;ticas, coincidencia de patrones y manipulaci&oacute;n de campos.<\/p><p>Al dominar los conceptos b&aacute;sicos del comando <strong>awk<\/strong>, pronto podr&aacute;s usarlo de manera eficiente en distintas tareas, mantener tus documentos organizados y tener funciones potentes al alcance de tu mano.<\/p><h2 class=\"wp-block-heading\" id=\"h-awk-command-faq\">Preguntas frecuentes sobre el comando awk<\/h2><div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-1742888208035\"><h3 class=\"schema-faq-question\">&iquest;Para qu&eacute; se usa mejor awk?<\/h3> <p class=\"schema-faq-answer\"><strong>awk<\/strong> es una herramienta poderosa tanto para operaciones aritm&eacute;ticas como para trabajar con texto y cadenas. Se usa mejor para procesar texto, extraer y manipular datos estructurados, identificar patrones, realizar operaciones basadas en campos y hacer c&aacute;lculos.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1742888213870\"><h3 class=\"schema-faq-question\">&iquest;En qu&eacute; se diferencia awk de sed?<\/h3> <p class=\"schema-faq-answer\">Ambos son <a href=\"\/es\/tutoriales\/linux-comandos\">comandos de Linux<\/a>. Sin embargo, <strong>sed<\/strong> se adapta mejor a la edici&oacute;n basada en l&iacute;neas y a la manipulaci&oacute;n b&aacute;sica de texto, mientras que <strong>awk<\/strong> es un lenguaje de programaci&oacute;n completo que te permite usar condicionales y hacer c&aacute;lculos, adem&aacute;s de procesar datos por campos.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1742888218720\"><h3 class=\"schema-faq-question\">&iquest;Puede awk manejar conjuntos de datos grandes?<\/h3> <p class=\"schema-faq-answer\">Como <strong>awk<\/strong> trabaja l&iacute;nea por l&iacute;nea en lugar de cargar todo el archivo en la memoria, puede procesar conjuntos de datos grandes. Sin embargo, al realizar operaciones extremadamente complejas en archivos muy grandes, el rendimiento puede verse afectado.<\/p> <\/div> <\/div>\n","protected":false},"excerpt":{"rendered":"<p>El comando awk de Linux se utiliza ampliamente para tareas de procesamiento de texto. Puedes usar este comando directamente en la terminal para extraer datos de un archivo de texto, buscar patrones y realizar acciones sencillas, como dar formato al texto. Este comando tambi&eacute;n es un lenguaje de programaci&oacute;n, lo que significa que puedes usarlo [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/es\/tutoriales\/comando-awk-en-linux\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":559,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"C\u00f3mo usar el comando awk en Linux","rank_math_description":"Domina el comando awk en Linux. Simplifica el procesamiento de texto y manipula datos m\u00e1s r\u00e1pido.","rank_math_focus_keyword":"comando awk","footnotes":""},"categories":[5700],"tags":[],"class_list":["post-52965","post","type-post","status-publish","format-standard","hentry","category-vps"],"hreflangs":[{"locale":"es-ES","link":"https:\/\/www.hostinger.com\/es\/tutoriales\/comando-awk-en-linux","default":1},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/comando-awk-en-linux","default":0},{"locale":"es-MX","link":"https:\/\/www.hostinger.com\/mx\/tutoriales\/comando-awk-en-linux","default":0},{"locale":"es-CO","link":"https:\/\/www.hostinger.com\/co\/tutoriales\/comando-awk-en-linux","default":0}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/posts\/52965","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/users\/559"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/comments?post=52965"}],"version-history":[{"count":15,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/posts\/52965\/revisions"}],"predecessor-version":[{"id":53309,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/posts\/52965\/revisions\/53309"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/media?parent=52965"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/categories?post=52965"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/tags?post=52965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}