A: It is clear from this code fragment that awk is supposed to compare
$2
with "income"
. If you think about it (or change
awk
to echo
above), you will see that you have given the following to awk:
A:
{if($2==income) { /* THIS LINE IS THE PROBLEM */
A: What does awk do with this? It compares $2
with the contents of
the variable income. If income has not been set, it compares
it with zero or with the null string. Instead, you want:
A:
{ if ($2 == "income") {
A: which you can say with:
A:
case $col2 in income) awk ' { if ($2 == "'$col2'") { ... awk code ... } }' $file1;;
Replacing commands with echo
in shell scripts is a handy debugging
trick.
- in net.unix on Usenet, 1 November 1986