给定一个包含如下数据的文件(即stores.dat文件)
sid|storeNo|latitude|longitude
2|1|-28.03720000|153.42921670
9|2|-33.85090000|151.03274200
输出列名数量的命令是什么?
也就是说,在上面的示例中,它将是4。(第一行中的管道字符数量+1)
我是这样想的:
awk '{ FS = "|" } ; { print NF}' stores.dat
但是它返回所有行,而不是只返回第一行,并且对于第一行,它返回1而不是4
发布于 2011-12-25 19:14:59
awk -F'|' '{print NF; exit}' stores.dat
只需在第一行之后立即退出。
发布于 2011-12-25 19:13:08
这是一种变通方法(对我来说:我不经常使用awk ):
显示包含数据的文件的第一行,用换行符替换所有管道,然后计算行数:
$ head -1 stores.dat | tr '|' '\n' | wc -l
发布于 2011-12-25 19:11:44
除非您在其中使用空格,否则您应该能够在第一行使用| wc -w
。
wc
是“字数统计”,它只计算输入文件中的字数。如果你只发送一行,它会告诉你列数。
https://stackoverflow.com/questions/8629330
复制相似问题