【发布时间】:2020-04-06 13:47:12
【问题描述】:
我必须从将转换为 .txt 文件的网页收集数据。出于操作目的,必须使用 AWK 脚本将此 txt 转换为 csv。
txt 的结构如下:
GME - Esiti dei mercati - MGP-GAS - asta (AGS)
Tabella esiti - MGP-GAS prezzi e volumi Esiti MGP-GAS ||
|sessione del: 30/03/2020 |
|
|
Prodotti |
Prezzo |
€/MWh |
Volumi totali |
MW |MWh |
Acquisti SRG_TSO |
MWh |
Vendite SRG_TSO |
MWh |
MGP-2020-03-31 |8,625 |
|4.027,000 |96.648,000 |
|- |
|96.648,000 |
|
|
|
|
|
Legenda
||
LEGENDA ||
Prezzo
|Prezzo di remunerazione di cui all'Art. 103 della disciplina del Mercato del Gas naturale.
|
Volumi (MW, MWh)
|Volumi accettati di cui all'Art. 103 della disciplina del Mercato del Gas naturale.
|
Acquisti SRG_TSO
|Quantità accettate in acquisto da Snam Rete Gas.
|
Vendite SRG_TSO
|Quantità accettate in vendita da Snam Rete Gas.
|
|
我需要获取并导入 csv 的值是 MGP-2020-03-31 之后使用管道“|”的值作为分隔符。或更好: 编辑:
MGP-2020-03-31 |8,625 |
|4.027,000 |96.648,000 |
|- |
|96.648,000 |
|
采用这种格式: 8,625|4.027,000|96.648,000|- |96.648,000
我没有使用 AWK 的经验,到目前为止我已经设法写了这个:
/Non ci sono dati/{
exit
}
/sessione del/{
data = $3
}
/MGP/{
data = data $0
print data
}
/Non ci sono dati/{
print $0
}
每当页面显示“Non ci sono dati”时,尝试捕捉“无数据”情况。如何获取第一行下方的值(值是 8,625 的值?)。你能帮忙吗? 谢谢
【问题讨论】:
-
您想要获取的 MGP 数据是由什么划分的?显然它不是换行符,也不是竖线字符。
-
您无法从 MGP 行获取第一个值,因为您立即调用 getline 来读取包含第一个值的行之后的行。
getline很少是正确的方法,但如果您正在考虑使用它,请确保您了解 awk.freeshell.org/AllAboutGetline 讨论的所有内容。 edit您的问题是根据您提供的示例输入显示您期望的确切输出,
标签: csv awk export-to-csv