I have data that looks like this:
foo 78 xxx
bar yyy
qux 99 zzz
xuq xyz
They are tab delimited. How can I extract lines where column 2 is
You need to specifically set the field separator to a TAB character:
> cat qq.in
foo 78 xxx
bar yyy
qux 99 zzz
xuq xyz
> cat qq.in | awk 'BEGIN {FS="\t"} $2=="" {print}'
bar yyy
xuq xyz
The default behaviour for awk
is to treat an FS
of SPACE (the default) as a special case. From the man page:
In the special case that
FS
is a single space, fields are separated by runs of spaces and/or tabs and/or newlines. (my italics)