首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >unix -文件中的列数

unix -文件中的列数
EN

Stack Overflow用户
提问于 2011-12-25 19:06:47
回答 8查看 205.6K关注 0票数 83

给定一个包含如下数据的文件(即stores.dat文件)

代码语言:javascript
复制
sid|storeNo|latitude|longitude
2|1|-28.03720000|153.42921670
9|2|-33.85090000|151.03274200

输出列名数量的命令是什么?

也就是说,在上面的示例中,它将是4。(第一行中的管道字符数量+1)

我是这样想的:

代码语言:javascript
复制
awk '{ FS = "|" } ; { print NF}' stores.dat

但是它返回所有行,而不是只返回第一行,并且对于第一行,它返回1而不是4

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2011-12-25 19:14:59

代码语言:javascript
复制
awk -F'|' '{print NF; exit}' stores.dat 

只需在第一行之后立即退出。

票数 129
EN

Stack Overflow用户

发布于 2011-12-25 19:13:08

这是一种变通方法(对我来说:我不经常使用awk ):

显示包含数据的文件的第一行,用换行符替换所有管道,然后计算行数:

代码语言:javascript
复制
$ head -1 stores.dat | tr '|' '\n' | wc -l
票数 39
EN

Stack Overflow用户

发布于 2011-12-25 19:11:44

除非您在其中使用空格,否则您应该能够在第一行使用| wc -w

wc是“字数统计”,它只计算输入文件中的字数。如果你只发送一行,它会告诉你列数。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8629330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档