标题: [文本处理] [已解决]批量分割文件 [打印本页]
作者: dailyad 时间: 2020-5-6 00:35 标题: [已解决]批量分割文件
本帖最后由 dailyad 于 2020-5-6 17:45 编辑
已经解决,谢谢
~~~~~~~~~~~~~~~~~~~~~~~
需要分割一个有循环数据的文本(每个数据以pubit开始,以$$$$结尾)
新文件命名为sp0000045_id000003860156(就是<supplier> 和<id> )
新文件内容:\pubit *\M END
请各位大神给一个思路
文件有时候比较大,有几百M的
pubit
-5.7810 -0.0045 -1.3560 N 0 0 0 0 0 0 0 0 0 0 0 0
-4.7344 0.4670 -0.6060 C 0 0 0 0 0 0 0 0 0 0 0 0
-4.8212 1.6499 0.0245 N 0 0 0 0 0 0 0 0 0 0 0 0
-3.9536 1.8938 1.0285 C 0 0 0 0 0 0 0 0 0 0 0 0
M END
> <supplier>
sp0000045
> <id>
id000003860156
$$$$
作者: ivor 时间: 2020-5-6 08:16
本帖最后由 ivor 于 2020-5-6 08:47 编辑
powershell
目标文件1.txt- $regex_loop = [regex]"pubit(.|\r\n)*?\$+"
- $value = $regex_loop.Matches([System.IO.File]::ReadAllText("1.txt"))
- $value | %{
- $_.Value -match "pubit(.|\r\n)*?END" | Out-Null
- $pubit = $Matches[0]
- $_.Value -match "sp\d+" | Out-Null
- $supplier = $Matches[0]
- $_.Value -match "id\d+" | Out-Null
- $id = $Matches[0]
- Write-Host $id
- Out-File -FilePath $supplier"_"$id -InputObject $pubit
- }
复制代码
作者: dailyad 时间: 2020-5-6 17:49
多谢大神!很奇怪遇到下列情况就报错,说路径中含有非法字符。是不是一定要预处理成指定行含指定字符的格式?
pubit -5.7810 -0.0045 -1.3560 N 0 0 0 0 0 0 0 0 0 0 0 0
-4.7344 0.4670 -0.6060 C 0 0 0 0 0 0 0 0 0 0 0 0
-4.8212 1.6499 0.0245 N 0 0 0 0 0 0 0 0 0 0 0 0
-3.9536 1.8938 1.0285 C 0 0 0 0 0 0 0 0 0 0 0 0
M END> <supplier>sp0000045 > <id> id000003860156
$$$$
作者: ivor 时间: 2020-5-6 20:18
我这测试正常
作者: dailyad 时间: 2020-5-6 21:01
多谢,我又测试了一下,是可以的!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |