First of all, my apologies for the somewhat clumsily worded title. If you can think of a better one, please feel free to edit. [EDIT: done]
What I am trying to do is use awk
inside a bash
script and do a rather common task: iterate well structured file lines and split them by a delimiter into an array. Here is a sample from the file:
Joe:Johnson:25
Sue:Miller:27
There are numerous examples how this can be done on a single line in the interactive mode, however, I am doing it in a script in which I would like to use that array manipulated by awk outside the awk subshell in bash itself:
cat ${smryfile} | while read smryline; do
echo ${smryline}
#now i want to split the line into array 'linearray' in awk but have it usable when i get back to bash
echo ${smryline} | awk '{split($0,$linearray,":")}'
varX=$linearray[2]
echo $varX
#do something with $varX
done
I get an error:
awk: syntax error at source line 1
context is
>>> {split($0,$linearray <<< ,":")}
awk: illegal statement at source line 1
Is it possible to do what I am trying to do (use arrays that are defined in awk outside of its scope) and how should I do it?
${var}
is not the same as"$var"
. Verify with this:var=" a b c "; echo "$var"; echo ${var}
-- you'll see the whitespace removed in the 2nd echo. – glenn jackman Feb 5 at 21:35