Board logo

标题: [文本处理] [已解决]批处理怎样截取字符串并重新组合? [打印本页]

作者: asdbb    时间: 2015-11-10 17:02     标题: [已解决]批处理怎样截取字符串并重新组合?

本帖最后由 asdbb 于 2015-11-11 14:52 编辑

原始数据
26111827453113397069B6010561827453115^GCCNB2BFESTIVAL2015^25010004000060113397           0376010561827453115=250100040000601133970042799

需求,

6111827453113397UJ137000000001560000000,2799,6111 8274 5311 3397
从第二位开始提取16个字符,加上特定字符“UJ137000000001560000000”这个需要可修改以后会改变,再加上逗号,提取这行的最后4位“2799",再加上逗号,再把这行的1到15位4位一组分开,数据很多

只会单独的提取,想做成一个BAT,求各位大神协助,谢谢
作者: 依山居    时间: 2015-11-10 17:12

文件和结果样本传网盘,放链接上来。
作者: 依山居    时间: 2015-11-10 17:49

  1. #python字符串切片,拼接字符串处理文本.py
  2. #依山居  17:40 2015/11/10
  3. #题目来源: http://www.bathome.net/thread-38085-1-1.html
  4. #相关资料:Python 序列的切片操作与技巧
  5. #http://www.cnblogs.com/ifantastic/archive/2013/04/15/3021845.html
  6. out=open("out.txt","a+")#处理结果将以追加的模式输出到这个文件。
  7. tdstr="UJ137000000001560000000"
  8. with open("test.txt") as f:
  9.     for l in f:
  10.         line=l.rstrip() #统一去掉行尾回车换行符,这样可以比较方便直接截取到后四位2799。
  11.         line=line[1:17]+tdstr+","+line[-4:]+","+line[1:5]+" "+line[5:9]+" "+line[9:13]+" "+line[13:17]+"\n"
  12.         out.write(line) #结果写入文件
  13.         print(line)
  14. out.close()
复制代码

作者: terse    时间: 2015-11-10 19:31

  1. @echo off&setlocal enabledelayedexpansion
  2. set "s=UJ137000000001560000000"
  3. for /f "delims=" %%i in (1.txt) do (
  4.     set "str=%%i"
  5.     echo !str:~1,16!%s%,!str:~-4!,!str:~1,4! !str:~5,4! !str:~9,4! !str:~13,4!"
  6. )
  7. pause
复制代码

作者: asdbb    时间: 2015-11-11 14:37

感谢以上2位,依山居朋友写的可是不能运行出结果,terse的可以处理数据达到要求,谢谢两位。
标题以后我会按要求处理,版主。
作者: 依山居    时间: 2015-11-11 14:46

回复 6# asdbb


    我都写了是python程序




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