Adel ESSAFI wrote:
Hello,
I have a "little" proble with awk
here I have a file which contain data like this
101663.dat
1 122837.920343696
1 121875.899726134
1 8011.13164749145
1 24955.1102952732
when I execute
awk 'BEGIN { }
echo $2
END { print "Fin" }
' testclean
I got this outpout
1 122837.920343696
1 121875.899726134
1 8011.13164749145
1 24955.1102952732
while I am expecting to get
122837.920343696
121875.899726134
8011.13164749145
24955.1102952732
without 1 at the beginning of the line. Can you help please.
Try this one:
awk 'BEGIN{} {print $2} END{print "Fin"}'
Without the {}, your $2 was in some way interpreted as a filter (true if $2 not empty).
In fact
awk '$2'
is like
awk '$2{print}'
and prints the entire line if it contains two or more words.
So you line probably means
- evaluate if echo (I suppose this returns false) and do the default action (print the
line)
- evaluate if $2 exists (in your case it is true) and do the default action (print the
line)
(conclusions based on improvised experimentation)
--
Roberto Ragusa mail at robertoragusa.it