如何使用 'cut' 命令过滤空行?
How to filter empty line with a 'cut' command?
我有一个包含几个字段的制表符分隔文件:
f1 f2 f3
a b c
a c
d e
f g a
我想使用“剪切”命令提取第 3 列:
cut -f3 t
这行得通。但是,如何过滤输出中的空行?可以看到,第2行和第3行提取出来后是空的
删除空输出:
$ cut -f3 file | grep .
f3
c
a
或:
$ awk -F'\t' ' {print }' file
f3
c
a
要用填充符替换丢失的输出:
$ awk -F'\t' '{if () print ; else print "FILL"}' file
f3
c
FILL
FILL
a
或者,对于喜欢更紧凑的三元语句的人:
$ awk -F'\t' '{print (?:"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' ' {print }' file2
f3
a b c d
我有一个包含几个字段的制表符分隔文件:
f1 f2 f3
a b c
a c
d e
f g a
我想使用“剪切”命令提取第 3 列:
cut -f3 t
这行得通。但是,如何过滤输出中的空行?可以看到,第2行和第3行提取出来后是空的
删除空输出:
$ cut -f3 file | grep .
f3
c
a
或:
$ awk -F'\t' ' {print }' file
f3
c
a
要用填充符替换丢失的输出:
$ awk -F'\t' '{if () print ; else print "FILL"}' file
f3
c
FILL
FILL
a
或者,对于喜欢更紧凑的三元语句的人:
$ awk -F'\t' '{print (?:"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' ' {print }' file2
f3
a b c d