【发布时间】:2016-04-02 03:09:17
【问题描述】:
我有这个文件:
933|Mahinda|Perera|male|1989-12-03|2010-03-17T13:32:10.447+0000|192.248.2.123|Firefox
1129|Carmen|Lepland|female|1984-02-18|2010-02-28T04:39:58.781+0000|81.25.252.111|Internet Explorer
4194|Hồ ChÃ|Do|male|1988-10-14|2010-03-17T22:46:17.657+0000|103.10.89.118|Internet Explorer
8333|Chen|Wang|female|1980-02-02|2010-03-15T10:21:43.365+0000|1.4.16.148|Internet Explorer
8698|Chen|Liu|female|1982-05-29|2010-02-21T08:44:41.479+0000|14.103.81.196|Firefox
8853|Albin|Monteno|male|1986-04-09|2010-03-19T21:52:36.860+0000|178.209.14.40|Internet Explorer
10027|Ning|Chen|female|1982-12-08|2010-02-22T17:59:59.221+0000|1.2.9.86|Firefox
并且按照这个顺序
./tool.sh --browsers -f <file>
我想按特定顺序统计浏览器的数量,例如:
Chrome 143
Firefox 251
Internet Explorer 67
我使用这个命令:
if [ "$1" == "--browsers" -a "$2" == "-f" -a "$4" == "" ]
then
awk -F'|' '{print $8}' $3 | sort | uniq -c | awk ' {print $2 , $3 , $1} '
fi
但它仅适用于 3 个参数。如何使它适用于许多论点?例如一个有 4 个字或更多字的浏览器
【问题讨论】:
-
您是在问如何对文件进行排序,或者如何处理参数?
-
both .. 我怎样才能打印右侧的浏览器计数,一个空格和超过 3 个单词的浏览器
-
我看不出你的样本数据是如何产生这些结果的;例如,我没有看到 143 个“Chrome”计数。另外,你的论点是什么意思?你到底想用这些论点来达到什么目的?
-
看。事实上,我有一个更长的文件,所以这就是为什么有更多的浏览器。好吧,这些参数是 $1 = 143 , $2 = chrome $3 = " " 。 ,但是如果第 8 列($8)中的浏览器有超过 4 个字,它只打印到 $3...我怎样才能让它在行中打印更多的 $,例如:浏览器 1(浏览器的名称和数量此浏览器的计数,它们之间有一个空格)