Lo creas o no, no puedo encontrar la respuesta a lo que creo que sería esta pregunta muy básica.bucle sobre los caracteres en la cadena de entrada utilizando awk
En awk, ¿cómo puedo recorrer la cadena de entrada carácter por carácter? Digamos que solo quería imprimirlos. ¿Hay una matriz a la que pueda acceder? ¿O necesito usar substr?
Básicamente, algo así como:
echo "here is a string" | awk '
{ for(i=0; i<[length of input string]; i++)
printf [value at index i in array x];
}'
Francamente, me da vergüenza.
en realidad, length() es una extensión de gawk AFAIK, no funciona en awk puro http://stackoverflow.com/questions/14720898/illegal-reference-to-an-array-in-awk-i- Tengo-problema-descifrar-awk – vaxquis
@vaxquis No estoy seguro de lo que quiere decir con "puro" awk, pero 'length' está en POSIX. La extensión gawk se aplica a matrices en lugar de cadenas. Afortunadamente, podemos simplemente cambiar 'length (chars)' a 'length ($ 0)'. –
awk "puro" en el sentido de "no awk extendido" ... y sí, quise decir este uso de length(); también puede usar "len = split (...)" y luego "i <= len" con el mismo resultado. – vaxquis