csvquote: smart and simple CSV processing on the command line

在处理csv文本发现awk不能直接处理引号内包括逗号的数据,比如:

field1,"field2, has a comma in it","field 3 has a ""Quoted String"" in it"

这是可以使用csvquote工具来处理了,此工具需要源代码安装,代码地址:https://github.com/dbro/csvquote

Are you looking for a way to process CSV data with standard UNIX shell commands?

Are you running into problems with embedded commas and newlines that mess everything up?

Do you wish there was some way to add some CSV intelligence to these UNIX tools?

awk, sed
cut, join
head, tail
sort, uniq
wc, split
This program can be used at the start and end of a text processing pipeline so that regular unix command line tools can properly handle CSV data that contain commas and newlines inside quoted data fields.

使用AWK过滤数据

现有大批量的文本数据,需要截取其中符合一定范围的数据(减少数据量)。数据的格式如下:

42.69,-84.6,1
41.74,-86.21,1
42.26,-83.73,2
43.01,-83.68,6
42.74,-84.48,3
42.29,-83.7,4
42.29,-83.25,2
41.36,-82.07,1
42.99,-83.73,3
42.24,-84.41,1

其中,截取的目标范围是第一列的数字在一定范围,如40-44,第二列在另个范围。
开始我是将其全部导入到数据库中(copy命令),然后再进行delete操作,但随数据的处理,数据库的速度越来越慢,导致数据的处理速度不可接受。因此想在入库前就先行截取。Google后发现了解决方案:Using AWK to Filter Rows
具体解决方案如下:
awk -F',' '{ if($1 <= 44.0 && $1>=41.0 && $2<=-82.0 && $2>=-87.0) {print }}' 20161026-2300-point.csv

用shell脚本自动提取甘肃省城市空气质量数据

进入冬天天气严重变差,因此就需要关注本省的城市空气质量数据,发现其数据在本省的环境监测总站上可以直接公开获取,但没有提供一个总的文件连接,(可以方便入库、做图、分析),因此就使用shell脚本提取了一个发布到数据中心:http://westdc.westgis.ac.cn/data/2a7224fe-05f3-4e8c-bf7e-325c93668cafContinue reading “用shell脚本自动提取甘肃省城市空气质量数据”