我有一个包含以下内容的文件:
0 ABC 1 181.12 2 05/07/16 3 1002 4 1211511108 6 1902 7 1902 10 hello -1 0 ABC 1 1333.21 2 02/02/16 3 1294 4 1202514258 6 1294 7 1294 10 HAI -1 ...
我想转置上面的文件内容,如下所示。 ' -1'在上面的列表中是记录分隔符,它表示下一条记录的开始。
ABC,181.12,05/07/16,1002,1211511108,1902,1902,hello ABC,1333.21,02/02/16,1294,1202514258,1294,1294,HAI ...
请告诉我如何实现这一目标。
答案 0 :(得分:1)
将文件作为单个字符串读取:
$txt = Get-Content 'C:\path\to\your.txt' | Out-String
将内容拆分为-1
行:
$txt -split '(?m)^-1\r?\n'
在换行符处拆分每个块:
... | ForEach-Object {
$arr = $_ -split '\r?\n'
}
选择奇数索引处的值(跳过数字行)并用逗号连接它们:
$indexes = 1..$($arr.Count - 1) | Where-Object { ($_ % 2) -ne 0 }
$arr[$indexes] -join ','