problem with awk

Terry Polzin foxec208 at wowway.com
Wed Jun 2 19:15:21 UTC 2010


On Wed, 2010-06-02 at 13:44 -0500, Dave Ulrick wrote:
> 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
I don't know that the FS should be declared in the BEGIN processing what
about

 awk -F " " '{ print $2}' <file>



More information about the users mailing list