标题: [文本处理] [已解决]批处理如何将txt文本第一列内容相同的行的最后一列的数字相加 [打印本页]
作者: heng520 时间: 2015-4-30 23:24 标题: [已解决]批处理如何将txt文本第一列内容相同的行的最后一列的数字相加
本帖最后由 pcl_test 于 2016-11-26 02:07 编辑
小弟不材,想了好几天没写出来,才来论坛求助,希望各位高手帮帮忙解下题 ,在此先谢谢各位了~
比如,aaa.txt 内容如下
11111,20150430,10
11111,20150430,20
11111,20150430,30
22222,20150430,40
33333,20150430,50
44444,20150430,60
44444,20150430,70
55555,20150430,80
66666,20150430,90
66666,20150430,100
77777,20150430,110
以逗号分隔三段,用第一段来匹配相同,比如 第一行 11111 来匹配,那么第二第三行就认为与第一行相同,然后相同行的第三段数值相加。
最终结果如下:
11111,20150430,60
22222,20150430,40
33333,20150430,50
44444,20150430,130
55555,20150430,80
66666,20150430,190
77777,20150430,110
作者: bailong360 时间: 2015-4-30 23:56
- @echo off
- for /f "useback tokens=1,2,3 delims=," %%i in ("aaa.txt") do set /a "#%%i#%%j+=%%k"
- (for /f "tokens=1,2,3 delims=#=" %%i in ('set #') do echo %%i,%%j,%%k)>New_aaa.txt
复制代码
作者: heng520 时间: 2015-5-1 00:10
回复 2# bailong360
太感动了,这么晚了还能帮我解题,非常感谢!
作者: bailong360 时间: 2015-5-1 00:18
回复 3# heng520
问题解决后,请编辑顶楼帖子在标题前面注明[已解决]
http://www.bathome.net/thread-3473-1-1.html
作者: pcl_test 时间: 2016-7-21 18:46
第三方- gawk -F"," "{a[$1\",\"$2]+=$3;}END{slen=asorti(a,b);for(i=1;i<=slen;i++)print b[i]\",\"a[b[i]]}" "1.txt">"2.txt"
复制代码
作者: idos 时间: 2016-9-1 18:28
回复 2# bailong360 - for /f "useback tokens=1,2,3 delims=," %%i in ("aaa.txt") do set /a "#%%i#%%j+=%%k"
复制代码
这一句为什么不是usebackq
作者: happy886rr 时间: 2016-9-1 19:28
回复 6# idos
usebackq和useback都行,微软就是这么规定的。
作者: idos 时间: 2016-9-4 15:15
回复 7# happy886rr
哦好,谢谢解答
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |