Dev*_*250 24 linux unix csv command-line microsoft-excel
我必须从传入的 CSV 文件中获取行数。
我使用以下命令来获取计数。
wc -l filename.csv
Run Code Online (Sandbox Code Playgroud)
考虑一个带有 1 条记录的文件,我\*在开始时得到一些带有 a 的文件,对于这些文件,如果我发出上述命令,它会返回0.
为什么\*在文件的开头没有注册为计数行,是否有解决方法?
小智 12
确保也计算非终止行的技巧可能是:
cat filename.csv | xargs -l echo | wc -l
Run Code Online (Sandbox Code Playgroud)
这似乎计算所有非空行,但跳过空行。
请注意,这是相当低效的,但对于日常使用而言,这可能不是问题。
另一种可能性,计算所有行,包括未终止的最后一行:
awk '{n+=1} END {print n}' filename.csv
Run Code Online (Sandbox Code Playgroud)
在 RHEL 6.2 上测试。天啊。
小智 2
对于只有一行并且没有尾随换行符的文件,wc 将报告 0。也许你的单记录 csv 文件是这样的?您可以使用 hexdump 查找尾随换行符,例如:
hexdump -C fn.csv
Run Code Online (Sandbox Code Playgroud)
在末尾查找 ascii 代码 0a。
| 归档时间: |
|
| 查看次数: |
57678 次 |
| 最近记录: |