标题: [文本处理] 【已解决】批处理如何将一对多的关系变成一对一的? [打印本页]
作者: sweet惜缘 时间: 2015-5-28 15:04 标题: 【已解决】批处理如何将一对多的关系变成一对一的?
DG中的文件类似于
ENTRY Drug group
D00049 DG00282
D00059 DG01467,DG01468,DG01469,DG01470,DG01471,DG01592
D00079 DG00448
D00094 DG00433
D00095 DG00013
D00106 DG00157
D00110 DG00808
D00113 DG00052
D00136 DG00885
D00139 DG01525,DG01634,DG01638
D00180 DG00239
D00225 DG01522,DG01567,DG01633
D00227 DG01062
D00232 DG01491
D00234 DG01482,DG01633
D00235 DG01461,DG01644,DG01806
我想让他经过处理后得到一对一的关系如下:
D00049 DG00282
D00059 DG01467
D00059 DG01468
D00059 DG01469
D00059 DG01470
D00059 DG01471
D00059 DG01592
D00079 DG00448
D00094 DG00433
D00095 DG00013
D00106 DG00157
D00110 DG00808
D00113 DG00052
D00136 DG00885
D00139 DG01525
D00139 DG01634
D00139 DG01638
D00180 DG00239
D00225 DG01522
D00225 DG01567
D00225 DG01633
D00227 DG01062
D00232 DG01491
D00234 DG01482
D00234 DG01633
谢谢大神!求指点!
作者: pcl_test 时间: 2015-5-28 16:08
本帖最后由 pcl_test 于 2015-5-28 16:17 编辑
- @echo off & setlocal enabledelayedexpansion
- (for /f "usebackq tokens=1*" %%a in ("DG.txt") do (
- set "str=%%b"
- set "str=!str:,=!"
- if "%%b" equ "!str!" (
- echo;%%a %%b
- ) else (
- for %%i in (%%b) do echo;%%a %%i)))>"NEW_DG.txt"
- pause
复制代码
作者: sweet惜缘 时间: 2015-5-28 17:05
回复 2# pcl_test
您好!!代码很有效!
现在有个问题还想请您帮忙解答一下
能否把上面的两列的代码变成数字,一个数字代表一个编码,例如:
D00049 DG00282
D00059 DG01467
D00059 DG01468
D00059 DG01469
D00059 DG01470
D00059 DG01471
DG01592 DG01470
改变后可能就是
1.1 2.1
1.2 2.2
1.2 2.3
1.2 2.4
1.2 2.5
1.2 2.6
2.7 2.5
1代表格式为D+number这种格式的,2代表格式为DG+number这种格式的,小数点后面的数字代表每发现一个新的编码则小数点后面的数字自增一。
非常感谢!!不胜感激!!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |