problem with awk

Dave Ulrick d-ulrick at comcast.net
Wed Jun 2 18:44:16 UTC 2010


On Tue, 1 Jun 2010, Dave Ulrick wrote:

> Looks like a field separator (FS) problem.  The field separator is used by 
> 'awk' to divide a line into fields.  The default 'awk' field separator is 
> "\t" (tab) but your fields are separated by spaces.  Try adding this inside 
> the BEGIN {} block:
>
>
> FS = " ";
>
>
> This would give you a script like this:
>
>
> awk    'BEGIN { FS = " "; }
>       echo $2
>       END   { print "Fin" }
> ' testclean
>
> Alternatively, you may specify the field separator as an 'awk' option:
>
> awk -F " " '<your script>' testclean

Oops!  I zoomed in on the field separator issue without noticing that the 
rest of your script isn't quite correct.  Here's a one-liner that should 
solve your stated problem:

awk -F "\t" '{print $2}' <filename>

This command will print the second tab-delimited field of every record of 
a file.

Dave
-- 
Dave Ulrick
Email: d-ulrick at comcast.net


More information about the users mailing list