[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 将文本行内容按指定格式分离重新组合/拼接

本帖最后由 pcl_test 于 2017-8-5 10:55 编辑

求大神指点一个bat怎么写
假设我有个配置文本a.txt
内容格式如下:
班级1        小明,小红,小郭        xiaoming,xiaohong,xiaoguo
班级2        小李,小高,小黑        xiaoli,xiaogao,xiaohei
班级3        小白,小露,小天        xiaobai,xiaolu,xiaotian
........以下省略多行
想做一个批处理
实现将a.txt的内容输出为b.txt,内容格式要求
班级1学生为
小明xiaoming
小红xiaohong
小郭xiaoguo
班级2学生为
小李iaoli
小高xiaogao
小黑xiaohei
班级3学生为
小白xiaobai
小露xiaolu
小天xiaotian
........
求大神指点啊

初来乍道见笑了,正则应该搞不定,正则才只能9个分组,能提取中文部分后赋予变量,再提取英文部分赋予变量,然后两两合并?

TOP

回复 3# 3518228042

数据少可以,要真是一个班级几十人呢?正则虽好,可不能“贪杯”

TOP

  1. //&cls&(type a.txt) 2>nul|cscript -nologo -e:jscript "%~f0">"b.txt"&pause&exit
  2. WSH.echo(WScript.StdIn.ReadAll().replace(/(班级\d+)\s+([^\s,]*),([^\s,]*),([^\s]*)\s+([^\s,]*),([^\s,]*),([^\s]*)/g, '$1学生为\r\n$2$5\r\n$3$6\r\n$4$7\r\n').match(/.+/g).join('\r\n'))
复制代码

TOP

Pyhton
  1. with open("a.txt",'r') as file:
  2.     for i in file:
  3.         print("%s学生为:" % i.split( )[0], file=open("b.txt","a"))
  4.         for j in range(3):
  5.             print("%s %s" % ( i.split( )[1].split(",")[j], i.split( )[2].split(",")[j]), file=open("b.txt","a"))
复制代码
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

返回列表