所有
我正在逐行解析CSV并为每行创建一个表,但我只想打印非空字段的列和标题。 样本数据:
HEADER1,HEADER2,HEADER3,HEADER4
field1,,field3,field4
我想:
HEADER1,HEADER3,HEADER4
field1,field3,field4
答案 0 :(得分:1)
您可以使用这样的脚本(blanks.awk):
BEGIN { FS=OFS=","}
NR == 1 { for ( i = 1; i<= NF; i++ ) hdrs[ i ] = $i
next
}
1 { for( i =1; i <= NF; i++){
printf("%s", ($i!="" ? hdrs[ i ] OFS: "") )
}
printf("\n")
for( i =1; i <= NF; i++){
printf("%s", ($i!="" ? $i OFS: "") )
}
printf("\n")
}
将blanks.csv作为您的文件,请运行以下命令:awk -f blanks.awk blanks.csv