Muchísimas gracias por tus palabras Rubén!!!! Es un gran incentivo para seguir grabando y publicando! Y un gusto enorme que te haya gustado!! Saludos cordiales!! (@d1cor)
Al fín un buen video que explica awk, la mayoría están en inglés y asumen que ya partís con conocimiento de awk. Sencillo, completo y bien explicado. Gracias!
17:48 Cuando en un programa AWK no estamos procesando líneas desde la entrada estándar, lo que podemos hacer es que el código se ejecute con el patrón BEGIN, explicado antes.
Muchísimas gracias por tus palabras y recomendaciones Daniel!! Y por supuesto que voy a tenerlo en cuenta! De hecho invertí en un mejor mic para los videos más nuevos, y estuve "jugando" con los codificadores y calidades para mejorar el video. Saludos y mil gracias por suscribirte!! @d1cor
GREP: No realiza manipulación de datos; simplemente filtra líneas que coinciden con un patrón. AWK: Permite realizar cálculos, manipulación de columnas y generación de informes más avanzados sobre datos de texto.
Hola! No, es costumbre de programador de lenguaje C, pasa el tiempo y me sigue resultando raro ver ñ's y caracteres acentuados en línea de comandos :P Gracias por tus palabras y por comentar! Saludos! Diego @d1cor
Hola gracias por el tutorial en una parte del video a una operación matemática al tamaño en kibibytes pero si lo muero mostrar e GB como sería esa parte
Hola! Gracias a vos por comentar! Creo que te referís a cuando el tamaño de los archivos está dado en Bytes y yo lo convierto a KiB dividiendo por 1024. Si es eso, podrías volver a dividir por 1024 para obtener el tamaño en MiB, y nuevamente por 1024 para obtener el tamaño en GiB. Es decir, para mostrar los tamaños en GiB podrías hacer algo así: ls -l / | awk '{print $5/1024/1024/1024" GiB"} Espero te sirva! Cualquier duda escribime. Saludos!
@@Juncotic Gracias,por la respuesta, pero yo en refiero por ejemplo en comando free -h me muestre la memoria en formato humano, pero en centos antiguos está opción no lo tenía y se mostraba en mb para esa caso como se podría hacer , gracias
Ah, para eso habría que trabajar un poco más en la salida... por ejemplo así: df | sed '1d' | awk 'BEGIN { GiB=1024*1024} {print "Dev: "$1", Used: "$3/GiB" GiB, Avail: "$4/GiB" GiB"}' En ese comando uso "df" para obtener los tamaños usado y disponible de cada dispositivo, lo paso por "sed" para eliminar la primer línea (cabeceras), y luego por "awk" para operar con los tamaños. Almaceno en la variable "GiB" el producto 1024*1024 para hacer más limpia la línea de awk. Finalmente, muestro cada línea de salida en el formato que quiero, dividiendo los Bytes por la variable GiB y así convertirlos en Gibibytes. Espero te sirva!
@@Juncotic gracias, otra cosa más espero no te moleste, en el caso que quiero guardarlo en un archivo pero que lo guarde en columnas con espacios entre columnas, ejemplo ls -l y otra vez guardar en el mismo archivo pero al lado como si fuese otra columna, la mayoría de las veces lo Guada pero forma vertical un resultado de ando del otro pero lo que deseo es guarde uno al lado del otro, talvez no sea con ls sino con otro comando pero la idea es guardar en forma de columnas, gracias
Hola! Ninguna molestia! No se si entiendo tu consulta, así que vamos con un ejemplo. Si tenés un archivo llamado "a.txt" con teste contenido: aa aa aa aa Y otro archivo llamado "b.txt" con esto: bb bb bb bb Y querés generar un tercer archivo con esta forma: aa aa bb bb aa aa bb bb Creo que la solución va por el lado del comando "paste": paste a.txt b.txt > mezclado.txt Espero te sirva!
no hace falta hacer un cat para pasárselo a awk. awk por él mismo puede ejecutar el comando deseado en el archivo especificado (sin necesidad de cat), por ejemplo: awk -F ':' '{print $1}' /etc/passwd Saludos!!
Yeah! Lo mío es más una cuestión de costumbre, tiro el cat al archivo, y después veo cómo ir filtrando cosas, así que le agrego el pipe al final, pero sí, es más cómodo y elegante como mencionas. A propósito, en mi history debo tener varios "cat archivo | less"... es que no me acostumbro xD Gracias por comentar y aportar! Abrazo! (@d1cor)
Hola, muy buen vídeo y gracias por compartir tus conocimientos, pero por el amor de Jesús, por favor deja de hacer cat /etc/passwd | awk, haz awk /etc/passwd
jaja gracias por tu comentario!! Es una cuestión de costumbre nada más, suelo usar awk para filtrar salida de comandos en general, y no para filtrar archivos, por lo que cuando voy a filtrar un archivo me resulta más fácil cargar el awk desde el history del bash y reemplazar el comando de antes del pipe por un cat... cada uno usa los comandos como quiere, no? :P Saludos! @d1cor
En el minuto ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-AUg5qFimRWQ.html elegis la columna dos y te aparece "mundo," ¿cómo podes hacer para que no aparezca la ","?
Hola! Una forma simple es usar el comando tr para eliminar los caracteres que no quieras en la salida. En este ejemplo podrías usar esto: echo "hola mundo, que tal" | awk '{print $2}' | tr -d , El "tr -d ," elimina la coma de la salida. también podría haberse utilizado antes de awk en la cadena de pipes. Existen otras alternativas, como el comando sed, para realizar sustituciones en cadenas. Espero que te sirva! Cualquier duda comentame. Saludos!
AYUDAAAA!! Si tengo un txt con los datos: hola 20201108 0123 luego lo llamo y quiero imprimir lo que tiene... al imprimirlo quiero que me diga que tipo de datos es (String int o date) como puedo hacer eso.. alguien sabe??
Hola! Un archivo de texto a nivel del bash contiene únicamente texto, el bash es un lenguaje destipificado (no distingue tipos de datos), por lo que se me ocurre que habría que verificar, línea por línea del archivo, si únicamente tiene números, o incluye algún caracter del alfabeto, pero eso creo que excede a awk (si hay algún experto en awk que pueda sumar su opinión será bienvenida!)
@@Juncotic Ya tiene tiempo... Efectivamente es como mencionas en cuanto a lo des-tipificado. En el ejemplo que da se ve que las fechas están en formato: aaaammdd con lo cual haciendo uso de expresiones regulares. Pudiera quedar así: cat archivo_datos | awk '/[0-9]{8,}/ {print}'
Hola Ivan! Awk y el manejo de expresiones que tiene por línea de comandos es prácticamente un lenguaje de programación. Por línea de comandos en Linux yo no he visto muchas más herramientas que hagan lo que hace awk salvo, por supuesto, scripts de la shell, python, perl, etc. Si querés compartir alguna herramienta que estés usando y te resulta interesante no tenés mas que escribir! Gracias por tu comentario! @d1cor
Cuales son dichas herramientas? Son multiplataforma? Son mas pesadas y requieren mayores recursos? Lo hacen igual de rápido y de forma eficiente que AWK? Que curva de aprendizaje tienen en comparación a AWK?
No tenemos Instagram, al menos por el momento. Estamos en RU-vid, Twitter, Telegram, LinkedIn y Facebook. Enlaces en juncotic.com/#contact Te esperamos por ahí!