要从类似文本中提取其中的经纬度数据:
u’city’: u”, u’lat’: u’53.54022′, u’lng’: u’28.04696′, u’id’: u’8037500000000000000′}”,,,[],0,0,57,80375,8037500000000000000,Детский сад №99,0,23.8435327,303,0,校园生活,,”http://maps.google.cn/maps/api/staticmap?center=53.6470467,23.8435327&zoom=15&size=120×120&maptype=roadmap&markers=53.6470467,23.8435327&sensor=true”,http://ww3.sinaimg.cn/large/4e704b16jw1exkskwur0bj205k05kt8v.jpg,,0,0,,,53.6470467,0,B2094457D66AA5FA4199,http://u1.sinaimg.cn/upload/lbs/poi/icon/88/57.png,887,0,57,80375,,0,8037500000000000000,白俄罗
一开始是尝试使用csvquote,后来发现部分类型数据存在问题,于是尝试使用sed提取文本,但试验后发现grep提取更为简单:
grep -Eo ‘markers=([0-9.,-]+)’
最终组合为:
cat hotpoi-tmp.csv | grep -Eo 'markers=([0-9.,-]+)' | awk -F= '{print $2}' | awk -F, '{printf "%.2f,%.2f\n",$2,$1}' | sort -t, -k2,2n -k1,1n | uniq
发表回复