too*_*oop 68 unix linux bash shell scripting
给定一个包含这样数据的文件(即stores.dat文件)
sid|storeNo|latitude|longitude
2|1|-28.03720000|153.42921670
9|2|-33.85090000|151.03274200
Run Code Online (Sandbox Code Playgroud)
输出列名数的命令是什么?
即在上面的示例中它将是4.(管道字符数+第一行中的1)
我想的是:
awk '{ FS = "|" } ; { print NF}' stores.dat
Run Code Online (Sandbox Code Playgroud)
但它返回所有行而不是第一行,而第一行则返回1而不是4
Mat*_*Mat 103
awk -F'|' '{print NF; exit}' stores.dat
Run Code Online (Sandbox Code Playgroud)
刚刚在第一行之后退出.
mik*_*iku 36
这是一种解决方法(对我来说:我不经常使用awk):
显示包含数据的文件的第一行,用换行符替换所有管道,然后计算行数:
$ head -1 stores.dat | tr '|' '\n' | wc -l
Run Code Online (Sandbox Code Playgroud)
Tom*_*rdt 11
除非你在那里使用空格,否则你应该可以| wc -w在第一行使用.
wc是"字数统计",它只计算输入文件中的单词.如果您只发送一行,它会告诉您列数.
| 归档时间: |
|
| 查看次数: |
158826 次 |
| 最近记录: |