AWK: Herramienta muy útil para la ’shell’
Un comando que siempre olvido y resulta muy útil, para filtrar palabras en un listado (quedarnos sólo con la primera), emplear el siguiente comando, en este caso para saber el ID de los procesos activos:
# ps ax | egrep "[0-9]+" | awk '{print $1}'
Otro ejemplo de uso interesante, convertir un fichero passwd estilo Sixth Edition a otro estilo BSD:
cat linux_passwd | awk -F :
'{printf("%s:%s:%s:%s::0:0:%s:%s:%s\n", $1,$2,$3,$4,$5,$6,$7); }' >
bsd_passwd
Cómo renombrar ficheros con una “cola” incorrecta en el nombre (viene detrás de un caracter “?”), extraído desde una lista M3U de streaming:
ls | awk -F ? '{ system("mv \""$1"?"$2"\" \""$1"\"") }'
Un ejemplo avanzado, recodificar todos los ficheros en formato latin1 a UTF8 en un sólo comando, combinando con la shell find, file y iconv:
for i in `find . -exec file -e tokens -e apptype -e soft {} \; | \
grep ISO | awk -F : '{print $1}' `; do echo $i && iconv -f latin1 \
-t utf8 $i -o tmp && mv tmp $i; done
Actualización 17/03/09: Interesante recopilación de ejemplos
Tags: awk, bash, linux, ubuntu
You can comment below, or link to this permanent URL from your own site.