标题: [文本处理] [已解决]批处理如何合并同类项并按照编号大小排序? [打印本页]
作者: sweet惜缘 时间: 2015-12-5 16:50 标题: [已解决]批处理如何合并同类项并按照编号大小排序?
如下所示,第一列为编号,第二列为值,可以看到第一行和第二行编号一样,但值不同。我想经过批处理得到的数据为合并编号一样的值,并按编号从小到大排序。
原数据:
CID000028871 M01AB10
CID000028871 M02AA14
CID000002369 C07AB05
CID000002369 S01ED02
CID000002194 A16AX02
CID000042113 N01AB07
CID000017676 N05AB07
CID000031477 S01ED04
CID006918558 G04BD11
CID000002202 D05AC01
CID000041049 N02AX05
CID005462337 A07EC03
经过批处理后想得到的:
CID000002194 A16AX02
CID000002202 D05AC01
CID000002369 C07AB05,S01ED02
CID000017676 N05AB07
CID000028871 M01AB10,M02AA14
CID000031477 S01ED04
CID000041049 N02AX05
CID000042113 N01AB07
CID005462337 A07EC03
CID006918558 G04BD11
程序应该如何编写?跪求大神解答
作者: pcl_test 时间: 2015-12-5 17:13
本帖最后由 pcl_test 于 2015-12-5 17:23 编辑
- @echo off
- setlocal enabledelayedexpansion
- for /f "tokens=1*" %%a in (data.txt) do (
- if not defined #%%a (set #%%a=%%b) else set #%%a=!#%%a!,%%b
- )
- (for /f "tokens=1* delims=#=" %%a in ('set #') do echo;%%a %%b)>new_data.txt
- pause
复制代码
作者: sweet惜缘 时间: 2015-12-5 17:55
回复 2# pcl_test
大神~刚运行了一下您的程序,结果出来了,但是现在有个问题,我发现我最后要的数据编号并不是由小到大的,其实是无规律的,如何按照我附件上传的顺序将其重新排序呢?非常感谢!
您会发现sequence文件很小,因为运行您的程序的得到的new_data是全部数据,其实我只需要其中一部分数据,就是sequence里出现编号的数据。
作者: pcl_test 时间: 2015-12-5 18:05
回复 3# sweet惜缘 - @echo off
- setlocal enabledelayedexpansion
- for /f "tokens=1*" %%a in (data.txt) do (
- if not defined #%%a (set #%%a=%%b) else set #%%a=!#%%a!,%%b
- )
- (for /f %%a in (sequence.txt) do echo;%%a !#%%a!)>new_data.txt
- pause
复制代码
作者: sweet惜缘 时间: 2015-12-5 18:11
回复 4# pcl_test
有效!非常感谢!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |