Che ci crediate o no, non riesco a trovare la risposta a quello che penserei sarebbe questa domanda molto semplice.loop su caratteri nella stringa di input utilizzando awk
In awk, come posso eseguire il looping della stringa di input carattere per carattere? Diciamo che volevo solo stamparli. C'è un array a cui posso accedere? O devo usare substr?
In sostanza, qualcosa di simile:
echo "here is a string" | awk '
{ for(i=0; i<[length of input string]; i++)
printf [value at index i in array x];
}'
Francamente, mi vergogno.
in realtà, length() è un'estensione gawk AFAIK, non funziona su puro awk http://stackoverflow.com/questions/14720898/illegal-reference-to-an-array-in-awk-i- am-having-trouble-figuring-out-awk – vaxquis
@vaxquis Non sono sicuro di cosa intendi per "puro" awk, ma 'length' è in POSIX. L'estensione gawk si applica agli array anziché alle stringhe. Fortunatamente, possiamo semplicemente passare 'length (chars)' a 'length ($ 0)'. –
"puro" awk nel senso di "non alcun awk esteso" ... e sì, intendevo questo uso di length(); inoltre, puoi usare "len = split (...)" e successivamente "i <= len" con lo stesso risultato. – vaxquis