ruby使用正则表达式拆分文本文件

时间:2013-01-14 14:12:11

标签: ruby regex

是否可以将此文本文件拆分为带制表符分隔符的字段?该文件有超过5,000行,最后3个数据字段可能不存在。 Asco也可能只有2或3位数。

qualification_code name level_of_education field_of_education asco anzsco
ACM10110 Certificate I in Animal Studies      524 0611 6399-15 361199
ACM20110 Certificate II in Animal Studies     521 0611 6399-15 361199
ACM30110 Certificate III in Animal Studies    514 0611 6399-15 361199
ACM30210 Certificate III in Animal Technology 514 0611 6399-15 361199
ACM30310 Certificate III in Captive Animals   514 0611 6399-15 361199
CHC41012 Certificate IV in Community Services Advocacy 511 0905 2512-13 411711

2 个答案:

答案 0 :(得分:2)

require "csv"

CSV.foreach("test.dat", :col_sep => "\t", :headers => true) do |row| 
  puts row[0]
  # or puts row
  # or whatever processing you want here
end

因为OP在评论pgadmin(免费/ OSS)中将Postgres作为导入目标包含import tool as of pgadmin version 1.16。仅当没有理由以编程方式执行任务时(即包括更新的新数据),这适用。

答案 1 :(得分:1)

下载页面确认数据是以制表符分隔的:

  

文件以制表符分隔的文本格式文件形式提供,应在打开前保存到您的计算机中。

您可以使用FasterCSV之类的内容为您完成任务。

您可以在示例文件夹中查找有关如何使用它的示例代码:
https://github.com/JEG2/faster_csv/tree/master/examples