Powershell-在已知值之后以CSV创建新行



我有一个数据集,当导出时,它看起来像csv:中的一行

数据1、数据2、数据3、数据4、数据5、数据6、数据7、数据8

我想把它分成几行,在这种情况下,我有一个已知的值,所以我们说数据4。如果你看到术语";data4";创建新行?示例:

Original:
data1, data2, data3, constant value, data4, data5, data6, constant value
Desired:
data1, data2, data3, constant value
data4, data5, data6, constant value

我认为这会很容易,在看了之后,我只找到了另一个答案,他们有一个稍微复杂的正则表达式来做这件事。如有任何帮助,我们将不胜感激。我尝试了很多方法,但通常我的条目最终只是csv中的文本或红色错误消息,嘲笑我缺乏powershell知识。如果我丢失了常数值,那也没关系——它只是导出中的垃圾,但它是一个很好的排序点,可以知道下一行应该何时开始。

按逐字字段值data4拆分,假设字段是一行-内部字段:

# Create sample CSV file (without a header)
@'
data1, data2, data3, constant value, data4, data5, data6, constant value
data7, data8, data9, constant value, data4, data11, data12, constant value
'@ > test.csv
(Get-Content -Raw test.csv) -replace ',s*(?=data4,)', [Environment]::NewLine

管道到Set-Content -NoNewLine以保存到文件。

请参阅此regex101.com页面,了解regex的解释以及使用它进行实验的能力。

最新更新