我有一个带有几个字段的制表符分隔文件:
f1 f2 f3
a b c
a c
d e
f g a
我想使用' cut'命令提取第3列:
cut -f3 t
这很有效。但是,如何过滤输出中的空行?可以看出,第二行和第三行在提取后都是空的。
答案 0 :(得分:1)
删除空输出:
$ cut -f3 file | grep .
f3
c
a
或者:
$ awk -F'\t' '$3 {print $3}' file
f3
c
a
用填充物替换缺失的输出:
$ awk -F'\t' '{if ($3) print $3; else print "FILL"}' file
f3
c
FILL
FILL
a
或者,对于喜欢更紧凑的三元声明的人:
$ awk -F'\t' '{print ($3?$3:"FILL")}' file
f3
c
FILL
FILL
a
$ cat file2
f1 f2 f3
f g a b c d
$ cut -f3 file2 | grep .
f3
a b c d
$ awk -F'\t' '$3 {print $3}' file2
f3
a b c d