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