Believe it or not, I can't find the answer to what I would think would be this very basic question.
In awk, how can I loop over the input string character by character? Let's say I just wanted to print them out. Is there an array I can access? Or do I need to use substr?
Basically, something like:
echo "here is a string" | awk '
{ for(i=0; i<[length of input string]; i++)
printf [value at index i in array x];
}'
Frankly, I'm embarrassed.
You can convert a string to an array using split
:
echo "here is a string" | awk '
{
split($0, chars, "")
for (i=1; i <= length($0); i++) {
printf("%s\n", chars[i])
}
}'
This prints the characters vertically, one per line.