Ejercicios AWK
-Quitar las líneas vacías de un archivo:
awk '!/^$/ {}' archivo
-Mostrar el login de los usuarios que están conectados:
w awk 'NR>2 {print $1}'
-Mostrar el login y el nombre completo de los usuarios cuyo login empieza y termina en ‘a’:
awk 'BEGIN {FS=":"} /^a[^:]*a:/ {print $1,$5}' /etc/passwd
-Borrar solo archivos (puede hacerse con rm nada más, pero qué pasa con alias como 'rm -r')
ls -l * grep -v drwx awk '{print "rm "$9}' sh
-Imprime sólo los nombres de usuarios del archivo /etc/passwd
awk –F: '{ print $1 }' /etc/passwd
-Imprimir todas las líneas del archivo con número de línea
awk '{ print NR $0 }'
-Escribir un comando AWK que cumpla la misma función que wc –l archivo:
awk 'END { print NR }' archivo
-Mostrar sólo los nombres y los tamaños de los archivos del directorio actual:
ls -l awk '{ print $8 ":" $5 }'
-Mostrar sólo los nombres y tamaños de archivos .txt:
# ls -l awk '$8 ~ /\.txt/ { print $8 ":" $5 }'
-Imprimir las líneas de un archivo que tengan más de 4 campos/columnas:
# awk 'NF > 4 {print}' archivo
-Imprimir el último campo de cada línea de un archivo:
awk '{ print $NF }' archivo
-Imprimir los campos de cada registro o línea de un archivo en orden inverso:
awk '{ for (i = NF; i > 0; --i) print $i }' fichero
-Imprimir última línea de un archivo:
awk '{line = $0} END {print line}' archivo
-Imprimir las primeras 10 líneas de un archivo:
awk 'NR < 10 {print}' archivo
-Mostrar todas las líneas de un archivo que contengan una determinada cadena
awk '/cadena/ { print }' archivo
-Mostrar todas las líneas de un archivo que NO contengan una determinada cadena
awk '! /cadena/ { print }' archivo
-Mostrar en pantalla los campos 1 y 3 del archivo /etc/passwd:
awk -F":" '{ print $1 "\t" $3 }' /etc/passwd
-Calcular la suma y el promedio de todas las primeras columnas del archivo:
awk '{ suma += $1 } END { print "suma:", s, " media:", s/NR }' archivo
-Imprimir los usuarios ordenados y su hora de conexión (primero este campo).
who awk '{print $5, $1}' sort
-Imprimir un número decimal reservando espacio para 4 dígitos (NR = número de línea
actual), un string ($0 = la línea completa), y salto de línea.
awk '{printf "%4d %s\n", NR, $0}' archivo
No hay comentarios:
Publicar un comentario