【问题标题】:counting the number of columns of a csv file计算 csv 文件的列数
【发布时间】:2019-12-11 08:57:02
【问题描述】:

我目前正在做一些事情,我需要能够计算 csv 文件中的列(字段)的数量。

我在 Linux shell 中尝试了几件事,并认为这应该可以工作:

head -1 police.csv | sed 's/[,]//g'| wc -c

这会返回一个非法的字节序列。档案的名字是警察。

有人可以帮忙吗?我也认为我需要使用 , 作为分隔符。

【问题讨论】:

  • 使用tr, 替换为新行。然后,用wc -l 计算新行数。您可能可以直接使用其他工具(例如 Awk)来完成。

标签: linux csv unix multiple-columns


【解决方案1】:
head -1 test.csv | sed 's/[^,]//g' | wc -c

请使用此命令。它工作正常并给出正确的结果。

【讨论】:

  • 这是我的 csv 文件 test.csv 。你可以改用police.csv
  • sed: RE 错误:非法字节序列 这是我在完成您编写的命令后遇到的错误。我做错了吗?
  • 你用的是mac os终端吗?
【解决方案2】:

CSV file specification 有点过于复杂,无法在没有额外工具的情况下在 shell 中处理 csv 文件(尤其是引用可能包含 "field1","fie,ld2" 等分隔符的字段)。我宁愿推荐使用 perl 或 python:

python3 -c "import csv;print(len(next(csv.reader(open('$FILE')))))"

【讨论】:

  • 这个,可惜只能用shell
猜你喜欢
  • 1970-01-01
  • 2012-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-13
  • 1970-01-01
  • 2019-01-31
  • 1970-01-01
相关资源
最近更新 更多