![计算单行 CSV 文件中的项目数?](https://linux22.com/image/547743/%E8%AE%A1%E7%AE%97%E5%8D%95%E8%A1%8C%20CSV%20%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%E9%A1%B9%E7%9B%AE%E6%95%B0%EF%BC%9F.png)
我有一个文件,其中包含一长串以逗号分隔的数字,如下所示:
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
实际上,为了得到正确的结果,你需要在结果中加一