找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25187|回复: 4

[文本处理] [已解决]批量分割文件

[复制链接]
发表于 2020-5-6 00:35:01 | 显示全部楼层 |阅读模式
本帖最后由 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

$$$$
发表于 2020-5-6 08:16:58 | 显示全部楼层
本帖最后由 ivor 于 2020-5-6 08:47 编辑

powershell
目标文件1.txt
  1. $regex_loop = [regex]"pubit(.|\r\n)*?\$+"
  2. $value = $regex_loop.Matches([System.IO.File]::ReadAllText("1.txt"))
  3. $value | %{
  4. $_.Value -match "pubit(.|\r\n)*?END" | Out-Null
  5. $pubit = $Matches[0]
  6. $_.Value -match "sp\d+" | Out-Null
  7. $supplier = $Matches[0]
  8. $_.Value -match "id\d+" | Out-Null
  9. $id = $Matches[0]
  10. Write-Host $id
  11. Out-File -FilePath $supplier"_"$id -InputObject $pubit
  12. }
复制代码

评分

参与人数 3技术 +3 收起 理由
wxyz0001 + 1 感谢分享
dailyad + 1 3ks
a6513375 + 1 乐于助人

查看全部评分

 楼主| 发表于 2020-5-6 17:49:37 | 显示全部楼层
多谢大神!很奇怪遇到下列情况就报错,说路径中含有非法字符。是不是一定要预处理成指定行含指定字符的格式?
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
$$$$
发表于 2020-5-6 20:18:33 | 显示全部楼层
我这测试正常

评分

参与人数 1技术 +1 收起 理由
dailyad + 1 耐心指导

查看全部评分

 楼主| 发表于 2020-5-6 21:01:21 | 显示全部楼层
多谢,我又测试了一下,是可以的!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 18:33 , Processed in 0.020696 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表