Published in: Bash
# IP para la interfaz eth0 ifconfig eth0 | awk '/inet addr/ {split ($2,A,":"); print A[2]}' resultado = 192.168.1.33 # Buscar valor(sin comillas) para una variable en un archivo de configuración mysettings=/tmp/settings cat <<EOF > ${mysettings} xerver=vesa xres="1280x800" force_vesa="yes" EOF awk -F "=" '/^xres/ {gsub(/\"/,"",$2) ; print $2}' ${mysettings} resultado = 1280x800 # Imprimir valores de líneas que se repiten e imprimir el número de líneas # Buscar las líneas del menu.lst que comiencen por "kernel" y mostrar el kernel que arrancan (sin el path) y por último el número de kernels encontrados. awk 'BEGIN{A=0} /^kernel/ {gsub(/\/boot\//,"",$2) ; print $2 ; A=A+1} END{print "Entradas de kernel encontradas: "A}' /boot/grub/menu.lst ### Desglosado awk 'BEGIN{A=0} /^kernel/ { gsub(/\/boot\//,"",$2) print $2 A=A+1 } END { print "Entradas de kernel encontradas: "A }' /boot/grub/menu.lst Resultado = vmlinuz-2.6.24-17-generic vmlinuz-2.6.24-17-generic vmlinuz-2.6.24-16-generic vmlinuz-2.6.24-16-generic memtest86+.bin Entradas de kernel encontradas: 5 # Extraer y formatear información desde un archivo. En este caso información sobre los procesadores: awk -F: '/^processor/{printf " Procesador"$2" es "};/^model name/{printf $2};/^vendor_id/{printf vendor};/^cpu MHz/{printf " %dMHz",int($2)};/^cache size/{printf ","$2" Cache"};/^$/{print ""}' /proc/cpuinfo ### Desglosado awk -F: '/^processor/ {printf " Procesador"$2" es "} /^model name/ {printf $2} /^vendor_id/ {printf vendor} /^cpu MHz/ {printf " %dMHz",int($2)} /^cache size/ {printf ","$2" Cache"} /^$/ {print ""}' /proc/cpuinfo resultado = Procesador 0 es Genuine Intel(R) CPU 1400 @ 1.83GHz 1000MHz, 2048 KB Cache Procesador 1 es Genuine Intel(R) CPU 1400 @ 1.83GHz 1000MHz, 2048 KB Cache # Imprimir valores de una sóla línea. En este caso del /proc/cmdline cat /proc/cmdline resultado = root=UUID=e9001fb7-d3af-4037-87c3-c105fd74d67b ro quiet splash locale=es_ES lpj=7330000 # Ahora filtramos awk -F= -v RS=" " '/locale/ {print $2}' /proc/cmdline resultado = es_ES # Bucle para búsqueda eliminando caracteres que no queramos ## En un mail tenemos esta línea: To: =?ISO-8859-1?Q?Lista_de_usuarios_de_Zope_en_espa=F1ol?= <zope-es@foo.org>, jojeda@bar.es, Juanje Ojeda <juanje.ojeda@foobar.com> ## y buscamos las direcciones de correo para los destinatarios (^To:) awk '/^To:/ {for (i=1; i<=NF; i++) if ( $i ~ "@" ) {gsub(/</,"",$i); gsub(/>/,"",$i); gsub(/,/,"",$i); print $i}}' archivo ### Desglosado: awk '/^To:/ { # Busca líneas que comiencen por "To:" for (i=1; i<=NF; i++) # Recorre la lista de campos de la línea encontrada if ( $i ~ "@" ) { # Busca campos que contengan "@" gsub(/</,"",$i) # Elimina el caracter "<" si lo contiene gsub(/>/,"",$i) # Elimina el caracter ">" si lo contiene gsub(/,/,"",$i) # Elimina el caracter "," si lo contiene print $i # Muestra el campo sin los caracteres eliminados } }' archivo Resultado: zope-es@foo.org jojeda@bar.es juanje.ojeda@foobar.com
You need to login to post a comment.
