我有一个格式良好的CSV文件,可能有标题行,也可能没有;数据可能会使用引号。我想要使用shell脚本来确定它的列数。
现在,如果我可以确定文件中没有使用引号括起来的逗号,那么以下方法似乎可行:
但是如果我不能做出这种假设呢?也就是说,如果我不能假定逗号始终是字段分隔符,我该怎么办?
如果有帮助的话,您可以假设没有引用的引号(即在引号字符串内部)。但最好也不要做出这个假设。
现在,如果我可以确定文件中没有使用引号括起来的逗号,那么以下方法似乎可行:
x=$(tail -1 00-45-19-tester-trace.csv | grep -o , | wc -l); echo $((x + 1))
但是如果我不能做出这种假设呢?也就是说,如果我不能假定逗号始终是字段分隔符,我该怎么办?
如果有帮助的话,您可以假设没有引用的引号(即在引号字符串内部)。但最好也不要做出这个假设。