Board logo

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

作者: e198912210    时间: 2017-8-4 16:56     标题: 将文本行内容按指定格式分离重新组合/拼接

本帖最后由 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
........
求大神指点啊
作者: ivor    时间: 2017-8-4 19:42

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"))
复制代码

作者: 3518228042    时间: 2017-8-4 20:23

  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'))
复制代码

作者: qazplm    时间: 2017-8-4 21:14

回复 3# 3518228042

数据少可以,要真是一个班级几十人呢?正则虽好,可不能“贪杯”
作者: 3518228042    时间: 2017-8-4 21:27

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




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2