微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从文件中删除一定数量的分隔符之前的所有内容

我有一个逗号分隔的数据文件,但没有新行将数据字段与数据字段分隔开,并且不能更改。 此外,即使在标题部分之后,也不会有任何新行,如CR / LF,而且我看到的唯一一致性是使用分隔符。 数据本质上是同一行上的一个大string,只有逗号分隔符分隔字段。

样本标题数据

"success":true,"dev":"id":999999999,"name":"device name","tags":"id":99999,"name":"devicesname","dataType":"Int","description":"my description","alarmHint":"","value":0.0,"quality":"good","deviceTagId":99,

包含标题和数据的示例数据

"success":true,"history":"date":"2016-11-05T21:15:47Z","date":"2016-11-05T21:15:48Z","value":1.0,"date":"2016-11-05T21:15:50Z","date":"2016-11-05T21:15:53Z","date":"2016-11-05T21:15:57Z","date":"2016-11-05T21:16:00Z","date":"2016-11-05T21:16:02Z","date":"2016-11-05T21:16:04Z","date":"2016-11-05T21:16:07Z"1.0

不知何故,我必须采取这些数据,并parsing出整个标题部分,如在第11个逗号之前删除所有内容,然后我需要采取其余的parsing出来,只保留“值”和“date”字段的值用值字段数据值后回车换行。

看来字段/列的名称和该字段中的数据的实际值由一个冒号分开,我把它扔掉了。

我正在使用Windows,因此即使需要进行.NET调用或其他任何方式,也希望使用PowerShell解决scheme,但是我愿意向任何人都可以做到的Windows解决scheme开放。

从csv文件读取并根据第一列值提取某些数据列

合并非常大的csv文件与公共列

正则expression式用于检查二进制传输的ASCII空间在Bash中

odo在csv和MysqL之间转换数据

按照字段数量文件分割成更小的文件

我会永远感激,并为你的债务,任何人可以帮助我,因为我一直在这么多的时间做了这么多的事情,只是无法弄清楚如何做到这一点。 数据来自一个来源,数据不能改变,但也许有一种方法来做到这一点,我没有find。

结束数据重新格式化/parsing

"2016-11-05T21:15:47Z",0.0 "2016-11-05T21:15:48Z",1.0 "2016-11-05T21:15:50Z",0.0 "2016-11-05T21:15:53Z",:0.0 "2016-11-05T21:15:57Z",:0.0 "2016-11-05T21:16:00Z",1.0 "2016-11-05T21:16:02Z",1.0 "2016-11-05T21:16:04Z",1.0 "2016-11-05T21:16:07Z",1.0

将CSV值导入Bash

如何在bash脚本中用逗号分割一个列表

如何按特定列对CSV文件进行sorting?

MysqL导出后找不到文件

csv的合并打破了变音符号

即使您的数据有逗号分隔的字段,也不是CSV数据。

数据线后面没有标题行; 相反,在一行中只有一系列名称 – 值对,名称不是唯一的 。

以下基于正则表达式的解决方案适用于您的示例输入:

# Replace the literal with `Get-Content YourFile` to load data from a file. $s='"success":true,"date":"2016-11-05T21:16:07Z","value":1.0' # - Remove the part of the line before the first "date" entry. # - Then extract the values from adjacent "date"-"value" pairs and output # each value pair on a separate line. $s -replace '^.+?("date":.+)','$1' -replace '.+?:([^,]+),.+?:([^,]+)',('$1,$2' + "`r`n")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐