计算单行 CSV 文件中的项目数?

计算单行 CSV 文件中的项目数?

我有一个文件,其中包含一长串以逗号分隔的数字,如下所示:

2,8,42,75,101

获取此文件中数字数量的最简单命令是什么(来自 Unix shell)?在上面的例子中,该命令是5

答案1

最简单的方法可能就是数一下逗号:

sed 's/[^,]//g' yourfile.csv | wc -c

通常情况下,你会添加一个来获取元素的数量,但如果那里有一个换行符,它也会被计算在内。我想在这种情况下会很方便。

同样使用 awk:

awk -F, '{print NF}' yourfile.csv

答案2

按照这里:http://www.cyberciti.biz/faq/finding-bash-shell-array-length-elements/

这不太难

如果你可以像这样在数组中定义元素列表:

ArrayName=("element 1" "element 2" "element 3")

那么就很简单了:

echo ${#ArrayName[@]}

但是你有一个 csv,所以这可能更好:http://www.thelinuxblog.com/working-with-csv-files-in-bash/

echo $(cat file.csv | sed ‘s/, /_ /g’ | tr ‘,’ ‘\n’ | wc -l)

答案3

找到了这个解决方案:

cat file.csv | sed 's/,/ /g' | wc -w

答案4

或者使用 grep

grep -o "," | wc -l

实际上,为了得到正确的结果,你需要在结果中加一

相关内容