Awk留空行

时间:2017-05-31 14:55:10

标签: linux awk

我有以下awk命令从file_a中选择前两列并在file_b中打印。

awk '{print $1"\t"$2}' file_a > file_b

file_a是制表符分隔的,并且我想保留一些空白行。运行上面的命令时,虽然空行打印为\ t \ n,我希望它们只是\ n。我需要在awk命令中更改什么?

3 个答案:

答案 0 :(得分:3)

awk '{print (NF ? $1"\t"$2 : $0)}' file_a > file_b

答案 1 :(得分:0)

 awk 'BEGIN{FS=OFS="\t"} {if(NF) print $1,$2; else print}' file

 awk 'BEGIN{FS=OFS="\t"} NF{print $1,$2; next}1' file

答案 2 :(得分:0)

稍短一些:

awk '/^$/;/./{print $1"\t"$2}' file_a > file_b

但是这在特殊情况下不起作用,例如当第一列或第二列为空或列数据包含空格时。要正确处理表格数据,请使用以下命令:

awk -F"\t" '/^$/;/./{print $1"\t"$2}' file_a > file_b