如何使用' cut'过滤空行?命令?

时间:2017-09-15 00:23:32

标签: cut

我有一个带有几个字段的制表符分隔文件:

f1    f2   f3 
a     b    c
a     c     
d     e    
f     g    a

我想使用' cut'命令提取第3列:

cut -f3 t

这很有效。但是,如何过滤输出中的空行?可以看出,第二行和第三行在提取后都是空的。

1 个答案:

答案 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

字段3中包含多个单词的示例

$ 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