我正在尝试使用 awk 有选择地显示数据库表中的几列(请参见下面的示例)。虽然并非所有字段都已填充,但我仍然需要返回一个空白字段来表示它。
--------- -------------------------- ------------ ------
000 0000000000198012 702 29
000 0000000000198013 29
000 702 29
000 0000000000198015 702 03
055 0000000000000001 702
这就是我正在使用的:
select * from db| awk '{print $1,$3,$4}'
但在有空白字段的行中,awk 会跳过这些字段并显示下一个填充字段的结果。如何准确显示结果?
-谢谢!
最佳答案
gawk
有FIELDWIDTHS
http://www.gnu.org/software/gawk/manual/html_node/Constant-Size.html
用法:
command | awk -f foo.awk
foo.awk
NR==1 {
for (i=1; i<=NF; i++) {
FIELDWIDTHS = FIELDWIDTHS " " length($(i))+1
}
}
NR>1 {
print $1, $3, $4
}
关于shell - 当某些字段为空时,使用 AWK 列出数据库查询列表中的几列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11693665/