我想列出英国所有主要城镇的名单。
Geonames似乎是一个很好的起点,虽然我需要在本地使用它(而不是API),因为我将在使用这些信息时离线工作。
由于geonames“allcountries.txt”文件的大小,它不会在Notepad,Notepad ++和Sublime上打开。我尝试在Excel中打开(包括数据建模功能),但该文件有超过一百万行,所以这也无法正常工作。
是否可以打开此文件,提取仅限英国的城市,并在Excel和/或其他软件中操作?我只是在地名,纬度,长,国名,大陆之后
答案 0 :(得分:0)
@dedek的建议(在评论中)使用GB.txt绝对是针对您的特定情况的最佳答案。
我添加了另一个答案,因为此技术更加灵活,可让您按国家或其他任何列进行过滤。即,您可以调整此解决方案,以按语言,英国的地区,人口等进行过滤,或将其应用于“ citys5000.txt”文件。
解决方案:
使用grep
查找与特定模式匹配的数据。本质上,下面的命令说的是,找到第8列正好是“ GB”的所有行。
grep -P "[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\tGB\t" allCountries.txt > UK.txt
({grep
是大多数Unix系统的标准配置,但是肯定有可以在Windows上运行的工具。)
详细信息:
grep
使用Perl样式的正则表达式(否则grep可能无法将\t
识别为TAB字符)。 (如果您使用的是grep
的其他版本,则可能会有所不同。)同样,您可以修改此示例以过滤任何文件中的任何列。