unix - 文件中的列数

新手上路,请多包涵

给定一个包含这样数据的文件(即 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

原文由 toop 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 666
2 个回答
awk -F'|' '{print NF; exit}' stores.dat

在第一行之后立即退出。

原文由 Mat 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

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

 $ head -1 stores.dat | tr '|' '\n' | wc -l

原文由 miku 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题