gpt4 book ai didi

python - 数据转换

转载 作者:太空宇宙 更新时间:2023-11-04 04:46:58 24 4
gpt4 key购买 nike

我有以下格式的数据:

输入数据:

 <http://A> <http://code.google.com/p/ldspider/ns#headerInfo> _:H  <id_0> .
<id_0> <C> <http://A> <id_1> .
_:H <http://www.w3.org/2006/http#responseCode> "200"^^<http://www.w3.org/2001/XMLSchema#integer> <id_2> .
<id_2> <C> <http://A> <id_3> .
_:H <http://www.w3.org/2006/http#date> "Mon, 23 Apr 2012 13:49:27 GMT" <id_4> .
<id_4> <C> <http://A> <id_5> .
_:H <http://www.w3.org/2006/http#content-type> "application/rdf+xml; charset=UTF-8" <id_6> .

我想将这些数据转换成以下形式:

输出数据:

 #@ <id_0>
<http://A> <http://code.google.com/p/ldspider/ns#headerInfo> _:H .
#@ <id_1>
<id_0> <C> <http://A> .
#@ <id_2>
_:H <http://www.w3.org/2006/http#responseCode> "200"^^<http://www.w3.org/2001/XMLSchema#integer> .
#@ <id_3>
<id_2> <C> <http://A> .
#@ <id_4>
_:H <http://www.w3.org/2006/http#date> "Mon, 23 Apr 2012 13:49:27 GMT" .
#@ <id_5>
<id_4> <C> <http://A> .
#@ <id_6>
_:H <http://www.w3.org/2006/http#content-type> "application/rdf+xml; charset=UTF-8" .

我知道我可以使用 C++ 通过解析文件轻松地做到这一点,但我也可以使用 awk 等 Linux 命令或使用 python 来做到这一点吗?在这里,我希望输入数据的最后一列显示为输出数据中带有 #@ 的第一行

最佳答案

鉴于某些数据看起来并不完全是表格形式,我会将其视为纯文本,并使用正则表达式手动隔离最后两个字段,以避免修剪有意义的空格。

使用 GNU sed,这可能如下所示:

sed -r 's/^(.*\S)\s+(\S+)\s+(\S+)$/#@ \2\n\1 \3/' filename

\s\S 是 GNU 扩展,分别匹配空白和除空白之外的所有内容;剩下的只是将行分成捕获组并在打印之前重新组装。请注意,这会删除倒数第三个字段和最后一个字段(行末尾的 .)之间的多余空格。根据您的示例输出,这似乎就是您想要的。

如果空白修剪不成问题,那么

awk '{ print "#@ " $(NF - 1); $(NF - 1) = $NF; --NF; print }' filename

似乎是在 (g|m)awk 中执行此操作的明智方法。

关于python - 数据转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29462311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com