使用wget和Awk来计算类似的expression式

我试图创build一个脚本,使用wget下载一个数据集,然后awksorting虽然该文件,并告诉你最常用的filter使用$14列。 到目前为止,我有如下所示的wget函数,

 wget -O- http://energy.gov/sites/prod/files/FieldSampleAirResults_0.csv 

但是,那么我会pipe这一个awk脚本,或者我应该尝试在一个脚本中做到这一切? 另外,我知道你会如何检查常见的词,这将是类似的东西

 $14=="charcoal" {++charcoal} 

但我不知道如何在awk脚本中实现这个。 任何意见或帮助将不胜感激。

谢谢,凯文

这将打印出现最多的filter的types。

 wget -O- http://energy.gov/sites/prod/files/FieldSampleAirResults_0.csv | awk -F, ' { filters[$14]++ } END { for (filter in filters) { if (filters[filter] > max) { max = filters[filter] type = filter } } print type }' 

如果您愿意,您可以轻松打印每种types和数量。 AWK可以根据需要进行sorting,也可以使用外部sort实用程序。

我将使用uniq来处理计数:

 wget -O- http://energy.gov/sites/prod/files/FieldSampleAirResults_0.csv | cut -d, -f14 | sort | uniq -c 

请注意,这不会正确处理包含逗号的引号字段。 如果你需要处理,你需要一些真正理解CSV格式的东西,比如Python的csv模块:

 python -c 'import csv; import sys; [sys.stdout.write(row[14]+"\n") for row in csv.reader(sys.stdin)]'