我想根据类别
计算.csv档案中的学生人数第1类是名称,第2类是国家,第3类是城市
.csv文件显示如下:
sort -k3 -t; students.csv
我已经尝试过我的.sh脚本,但它无法正常工作
cat students.csv | ./script.sh NYC
编辑
我正在尝试创建一个按城市计算学生的bash脚本,以及通过执行脚本(例如
)来计算一个城市的东西 protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
AndroidEnvironment.UnhandledExceptionRaiser += HandleAndroidException;
终端只显示来自纽约的学生
答案 0 :(得分:0)
如果我理解你的话,这样的话?
cut -d";" -f3 mike.txt | sort | uniq -c
(抱歉,第一次错误的解决方案 - 现在更新)
只统计一个城市:
cut -d&#34 ;;&#34; -f3 mike.txt | grep&#34; NYC&#34; | wc -l </ p>
根据文件的大小,您进行此操作的频率等等,查看其他解决方案可能是明智的,例如。 AWK。但是这个解决方案可以正常工作。
答案 1 :(得分:0)
错误消息的原因&#34;排序:多角色标签&#39; students.csv&#39;&#34;你还没有给-t
选项分隔字符。如果在-t
之后添加分号,则排序将按预期工作:
sort -k3 -t';' students.csv
答案 2 :(得分:0)
总有awk:
$ awk -F\; 'a[$1]++==0{c++}END{print c}' file
3
一旦您更全面地描述了您的要求,(计算名称但sort -k3
。请更新OP,我们可以帮助您更好。
编辑以符合您的更新:
$ awk -F\; -v col=3 -v val=NYC '
(length(val) && $col==val) || length(val)==0 && a[$col]++==0 {
c++
}
END { print c }
' file
1
如果您使用您要查找的值设置-v val=
,并使用列号设置-v col=
,则会计算val
中col
的出现次数。您设置col
但val
未设置col
中的不同值。