标题: [文本处理] [已解决]批处理怎样截取字符串并重新组合? [打印本页]
作者: 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
- #python字符串切片,拼接字符串处理文本.py
- #依山居 17:40 2015/11/10
- #题目来源: http://www.bathome.net/thread-38085-1-1.html
-
- #相关资料:Python 序列的切片操作与技巧
- #http://www.cnblogs.com/ifantastic/archive/2013/04/15/3021845.html
-
- out=open("out.txt","a+")#处理结果将以追加的模式输出到这个文件。
-
- tdstr="UJ137000000001560000000"
-
- with open("test.txt") as f:
- for l in f:
- line=l.rstrip() #统一去掉行尾回车换行符,这样可以比较方便直接截取到后四位2799。
- line=line[1:17]+tdstr+","+line[-4:]+","+line[1:5]+" "+line[5:9]+" "+line[9:13]+" "+line[13:17]+"\n"
- out.write(line) #结果写入文件
- print(line)
- out.close()
复制代码
作者: terse 时间: 2015-11-10 19:31
- @echo off&setlocal enabledelayedexpansion
- set "s=UJ137000000001560000000"
- for /f "delims=" %%i in (1.txt) do (
- set "str=%%i"
- echo !str:~1,16!%s%,!str:~-4!,!str:~1,4! !str:~5,4! !str:~9,4! !str:~13,4!"
- )
- pause
复制代码
作者: asdbb 时间: 2015-11-11 14:37
感谢以上2位,依山居朋友写的可是不能运行出结果,terse的可以处理数据达到要求,谢谢两位。
标题以后我会按要求处理,版主。
作者: 依山居 时间: 2015-11-11 14:46
回复 6# asdbb
我都写了是python程序
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |