【发布时间】:2013-11-27 21:40:54
【问题描述】:
我相信有人会知道如何解决这个问题。我有一个宠物项目,我正在尝试从以下几个 txt 构建数据库。记录按每 6 行(空白的)分割。字段被连续的空格和五行的末尾分开,形成一条记录。有些字段确实有空格。
我已经尝试过 DataStage 和 SPSS - 但似乎无法安静地得到结果。我也尝试过 Altova Mapforce,它让我很接近。我选择的数据库可能是 MySQL(鉴于这是我业余时间的项目)
SUNCOR ET AL MEDHAT 9-17-15-4 0416613 ALBERTA CROWN 753.3M
100/09-17-015-04W4/00 S 543.4M W 167.6M MEDICINE HAT 656.8M
DEV (NC) MEDICINE HAT FISH SCALE ZONE
VERTICAL NEW PRODUCTION GAS
SUNCOR ENERGY INC. 09-17-015-04W4
CVE HOUSE 3-23-83-17 0416614 ALBERTA CROWN 536.17M
1AB/03-23-083-17W4/00 N 281.3M E 686.8M BONNYVILLE 283.7M
OV (C) HOUSE MCMURRAY FM
VERTICAL NEW OIL SAND EVALUATION CRUDE BITUMEN
CENOVUS ENERGY INC. 03-23-083-17W4
CVE GRANOR 11-27-82-18 0416615 ALBERTA CROWN 554.69M
1AA/11-27-082-18W4/00 S 756.7M E 677.6M BONNYVILLE 409.2M
OV (C) GRANOR GROSMONT FM
VERTICAL NEW OIL SAND EVALUATION CRUDE BITUMEN
CENOVUS ENERGY INC. 11-27-082-18W4
SUNCOR ET AL MEDHAT 4-17-15-4 0416616 ALBERTA CROWN 750.9M
100/04-17-015-04W4/00 N 320.1M E 317.1M MEDICINE HAT 646.4M
DEV (NC) MEDICINE HAT FISH SCALE ZONE
VERTICAL NEW PRODUCTION GAS
SUNCOR ENERGY INC.
04-17-015-04W4
某些字段确实包含单个空格,但从不包含多个连续空格。
【问题讨论】:
-
这看起来像一个非常结构化的格式。
awk会很好,或者只是在 python 中做。一旦你在 csv 中得到它,你就可以使用 LOAD DATA INFILE 轻松地将它加载到 mysql 中 -
从您的示例中,每行似乎都包含固定长度的字段。是这样吗,你可以只在每一行上使用 substr() 或 unpack() 吗?我同意虽然 w/beerbajay,但如果文件很大,请转换为 csv。如果没有,只需逐条插入记录。使用 python、perl 等等...