找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 69205|回复: 17

[文本处理] [己解决]请教代码!!批处理提取相关内容并输出

[复制链接]
发表于 2013-5-9 02:19:54 | 显示全部楼层 |阅读模式
本帖最后由 keshun 于 2013-5-9 21:12 编辑

请教高手帮忙求代码!!
a.txt是系统日志,文本内容较大有几Mb,希望用批处理取出相关内容到b.txt或c.txt


a.txt原文内容如下:

2013-05-06 14:48:27 PPPoE 客户端连接 ppp61/192.168.82.220 建立成功 !
== 验证用户名: 2140
== 帐号 2140 到期时间 2013-07-06 23:59:59
== 限制下行带宽为 1-1 kbps, 通过设备 ppp61 ...
== 限制上行带宽为 1-1 kbps, 通过设备 ppp61 ...
应用模板: 4M, 上行: 20 kbps, 下行: 400 kbps

2013-05-06 14:48:36 PPPoE 客户端连接 ppp71/192.168.82.225 建立成功 !
== 验证用户名: 3170
== 帐号 3170 到期时间 2013-05-07 23:59:59
== 限制下行带宽为 1-1 kbps, 通过设备 ppp71 ...
== 限制上行带宽为 1-1 kbps, 通过设备 ppp71 ...
应用模板: 4M, 上行: 20 kbps, 下行: 400 kbps
2013-05-06 14:49:55 PPPoE 客户 3170/ppp71/192.168.82.225 已断开
2013-05-06 14:49:55 连接时间: 0 天 0 小时 1 分 19 , 累计上传 78.45 KB, 累计下载 131.56 KB
2013-05-06 14:56:02 PPPoE 客户 2153/ppp39/192.168.82.54 已断开
2013-05-06 14:56:02 连接时间: 0 天 0 小时 56 分 4 , 累计上传 539.90 KB, 累计下载 1.17 MB
2013-05-06 14:56:18 PPPoE 客户 2296/ppp16/192.168.82.92 已断开
2013-05-06 14:56:18 连接时间: 0 天 3 小时 18 分 44 , 累计上传 64.54 MB, 累计下载 1.01 GB
2013-05-06 14:57:09 PPPoE 客户 2212/ppp41/192.168.81.225 已断开
2013-05-06 14:57:09 连接时间: 0 天 1 小时 21 分 50 , 累计上传 1.53 MB, 累计下载 19.67 MB

2013-05-06 14:58:36 PPPoE 客户端连接 ppp16/192.168.83.42 建立成功 !
== 验证用户名: 2150
== 帐号 2150 到期时间 2013-07-14 23:59:59
== 限制下行带宽为 1-1 kbps, 通过设备 ppp16 ...
== 限制上行带宽为 1-1 kbps, 通过设备 ppp16 ...
应用模板: 4M, 上行: 20 kbps, 下行: 400 kbps
2013-05-06 14:59:29 PPPoE 客户 2333/ppp73/192.168.82.68 已断开
2013-05-06 14:59:29 连接时间: 0 天 0 小时 41 分 32 , 累计上传 2.57 MB, 累计下载 41.10 MB


b.txt输出内容如下:

客户 3170, 累计上传 78.45 KB, 累计下载 131.56 KB
客户 2153, 累计上传 539.90 KB, 累计下载 1.17 MB
客户 2296, 累计上传 64.54 MB, 累计下载 1.01 GB
客户 2212, 累计上传 1.53 MB, 累计下载 19.67 MB
客户 2212, 累计上传 2.57 MB, 累计下载 41.10 MB

c.txt输出内容如下:

3170, 78.45 KB, 131.56 KB
2153, 539.90 KB, 1.17 MB
2296, 64.54 MB, 1.01 GB
2212, 1.53 MB, 19.67 MB
2212, 2.57 MB, 41.10 MB

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2013-5-9 08:59:31 | 显示全部楼层
本帖最后由 tmplinshi 于 2013-5-9 09:12 编辑
  1. sed -n -r "/^.*(客户 [0-9]+).*$/ {s//\1,/; N; s/\n/ /; s/^([^,]+).*(累计上传.*)/\1, \2/p}; s/(客户|累计上传|累计下载) //g w c.txt" a.txt >b.txt
复制代码
http://gnu-on-windows.googlecode.com/files/sed-4.2.2-bin.zip

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2013-5-9 13:15:26 | 显示全部楼层
回复 2# tmplinshi


        感谢版主大哥,代码很完美。

输出的内容较大,要统计出累计上传和累计下载最大的10位用户,工作量还是很大的,在此希望版主给予帮助请求代码。
 楼主| 发表于 2013-5-9 13:20:42 | 显示全部楼层
本帖最后由 keshun 于 2013-5-9 13:30 编辑

请求代码,处理GB.txt输出累计上传最大的10个客户为a.txt和累计下载最大的10个客户为b.txt
注:GB.txt中有些客户出现的次数为n次。
格式为:客户 1234,累计上传 多少 MB,累计下载 多少 GB

GB.txt内容如下:
客户 2516, 累计上传 22.80 MB, 累计下载 1.40 GB
客户 2279, 累计上传 46.61 MB, 累计下载 1.34 GB
客户 2267, 累计上传 91.06 MB, 累计下载 1.57 GB
客户 2145, 累计上传 64.64 MB, 累计下载 1.19 GB
客户 2310, 累计上传 81.62 MB, 累计下载 1.05 GB
客户 2317, 累计上传 64.17 MB, 累计下载 1.12 GB
客户 2283, 累计上传 40.67 MB, 累计下载 2.16 GB
客户 2296, 累计上传 64.54 MB, 累计下载 1.01 GB
客户 2252, 累计上传 218.88 MB, 累计下载 1.63 GB
客户 2343, 累计上传 183.41 MB, 累计下载 1.63 GB
客户 2280, 累计上传 151.78 MB, 累计下载 2.50 GB
客户 2269, 累计上传 137.23 MB, 累计下载 1.17 GB
客户 2558, 累计上传 115.55 MB, 累计下载 1.06 GB
客户 2263, 累计上传 66.43 MB, 累计下载 1.48 GB
客户 3530, 累计上传 435.62 MB, 累计下载 3.54 GB
客户 2341, 累计上传 216.21 MB, 累计下载 2.32 GB
客户 2349, 累计上传 43.76 MB, 累计下载 1.13 GB
客户 2241, 累计上传 141.59 MB, 累计下载 1.70 GB
客户 3679, 累计上传 21.23 MB, 累计下载 1.11 GB
客户 2548, 累计上传 108.47 MB, 累计下载 1.36 GB
客户 2277, 累计上传 99.25 MB, 累计下载 3.22 GB
客户 2340, 累计上传 53.20 MB, 累计下载 2.00 GB
客户 2622, 累计上传 176.83 MB, 累计下载 1.50 GB
客户 2179, 累计上传 106.41 MB, 累计下载 1.14 GB
客户 2141, 累计上传 39.44 MB, 累计下载 1.35 GB
客户 2338, 累计上传 200.86 MB, 累计下载 1.31 GB
客户 2310, 累计上传 93.42 MB, 累计下载 1.02 GB
客户 2168, 累计上传 209.85 MB, 累计下载 1.01 GB
客户 2344, 累计上传 547.49 MB, 累计下载 2.86 GB
客户 2334, 累计上传 60.47 MB, 累计下载 1.78 GB
客户 2189, 累计上传 95.56 MB, 累计下载 1.69 GB
客户 2227, 累计上传 260.01 MB, 累计下载 2.00 GB
客户 2516, 累计上传 68.20 MB, 累计下载 3.38 GB
客户 2576, 累计上传 118.20 MB, 累计下载 1.04 GB
客户 2271, 累计上传 151.33 MB, 累计下载 1.35 GB
客户 2178, 累计上传 63.99 MB, 累计下载 2.36 GB
客户 2341, 累计上传 211.35 MB, 累计下载 1.01 GB
客户 2585, 累计上传 91.29 MB, 累计下载 2.49 GB
客户 2561, 累计上传 146.67 MB, 累计下载 2.78 GB
客户 2180, 累计上传 185.28 MB, 累计下载 1.68 GB
客户 2349, 累计上传 130.34 MB, 累计下载 1.02 GB
客户 2275, 累计上传 235.77 MB, 累计下载 1.21 GB
客户 2216, 累计上传 50.01 MB, 累计下载 1.40 GB
客户 2131, 累计上传 47.64 MB, 累计下载 1.00 GB
客户 2128, 累计上传 592.12 MB, 累计下载 2.54 GB
客户 2583, 累计上传 246.15 MB, 累计下载 1.73 GB
客户 2346, 累计上传 106.12 MB, 累计下载 1.29 GB
客户 2584, 累计上传 340.64 MB, 累计下载 3.05 GB
客户 2311, 累计上传 96.06 MB, 累计下载 1.17 GB
客户 2165, 累计上传 77.76 MB, 累计下载 1.19 GB
客户 2144, 累计上传 116.02 MB, 累计下载 2.06 GB
客户 2261, 累计上传 120.06 MB, 累计下载 1.31 GB
客户 2316, 累计上传 62.02 MB, 累计下载 1.13 GB
客户 3585, 累计上传 86.87 MB, 累计下载 1.02 GB
客户 2252, 累计上传 152.96 MB, 累计下载 2.25 GB
客户 2231, 累计上传 204.30 MB, 累计下载 3.01 GB
客户 2182, 累计上传 99.03 MB, 累计下载 1.96 GB
客户 2138, 累计上传 283.38 MB, 累计下载 1.42 GB
客户 2353, 累计上传 228.58 MB, 累计下载 1.49 GB
客户 3139, 累计上传 48.06 MB, 累计下载 1.72 GB
客户 3216, 累计上传 107.60 MB, 累计下载 1.03 GB
客户 2137, 累计上传 121.44 MB, 累计下载 1.66 GB
客户 2168, 累计上传 122.18 MB, 累计下载 2.57 GB
客户 2184, 累计上传 107.77 MB, 累计下载 3.61 GB
客户 2168, 累计上传 41.52 MB, 累计下载 1.04 GB
客户 2145, 累计上传 82.05 MB, 累计下载 1.50 GB
客户 2145, 累计上传 137.08 MB, 累计下载 1.58 GB
客户 2261, 累计上传 187.87 MB, 累计下载 2.25 GB
客户 2584, 累计上传 181.43 MB, 累计下载 1.38 GB
客户 2184, 累计上传 54.28 MB, 累计下载 1.46 GB
客户 2103, 累计上传 42.41 MB, 累计下载 1.14 GB
客户 2251, 累计上传 33.43 MB, 累计下载 1.12 GB
客户 2558, 累计上传 95.68 MB, 累计下载 1.36 GB
客户 2335, 累计上传 106.27 MB, 累计下载 2.66 GB
客户 2315, 累计上传 243.51 MB, 累计下载 1.71 GB
客户 2281, 累计上传 70.20 MB, 累计下载 3.07 GB
客户 2516, 累计上传 23.52 MB, 累计下载 1.29 GB
客户 2581, 累计上传 63.60 MB, 累计下载 2.23 GB
客户 2241, 累计上传 96.02 MB, 累计下载 1.27 GB
客户 2334, 累计上传 21.93 MB, 累计下载 1.06 GB
客户 2637, 累计上传 58.35 MB, 累计下载 1.13 GB
客户 2168, 累计上传 727.65 MB, 累计下载 2.90 GB
客户 2354, 累计上传 262.40 MB, 累计下载 3.06 GB
客户 2338, 累计上传 50.90 MB, 累计下载 2.55 GB
客户 2193, 累计上传 194.30 MB, 累计下载 1.97 GB
客户 2283, 累计上传 38.42 MB, 累计下载 1.85 GB
客户 2585, 累计上传 107.55 MB, 累计下载 1.08 GB
客户 2286, 累计上传 88.40 MB, 累计下载 1.18 GB
客户 2353, 累计上传 299.08 MB, 累计下载 1.14 GB
客户 2227, 累计上传 243.03 MB, 累计下载 1.60 GB
客户 3631, 累计上传 117.93 MB, 累计下载 2.11 GB
客户 2340, 累计上传 476.65 MB, 累计下载 2.90 GB
客户 2310, 累计上传 88.48 MB, 累计下载 1.03 GB
客户 2548, 累计上传 81.79 MB, 累计下载 1.28 GB
客户 2216, 累计上传 84.83 MB, 累计下载 3.74 GB
客户 2157, 累计上传 529.15 MB, 累计下载 3.15 GB
客户 2363, 累计上传 20.35 MB, 累计下载 1.14 GB
客户 2175, 累计上传 111.60 MB, 累计下载 1.12 GB
客户 2561, 累计上传 404.79 MB, 累计下载 3.33 GB
客户 2253, 累计上传 199.75 MB, 累计下载 1.55 GB
客户 3530, 累计上传 261.76 MB, 累计下载 3.61 GB
客户 2287, 累计上传 64.08 MB, 累计下载 1.24 GB
客户 2241, 累计上传 80.56 MB, 累计下载 1.06 GB
客户 2277, 累计上传 161.46 MB, 累计下载 1.44 GB
客户 2144, 累计上传 96.96 MB, 累计下载 2.10 GB
客户 2178, 累计上传 379.19 MB, 累计下载 3.09 GB
客户 2256, 累计上传 94.88 MB, 累计下载 1.05 GB
客户 2549, 累计上传 178.77 MB, 累计下载 1.50 GB
客户 2315, 累计上传 48.08 MB, 累计下载 1.08 GB
客户 2297, 累计上传 200.49 MB, 累计下载 1.01 GB
客户 2276, 累计上传 49.31 MB, 累计下载 1.22 GB
客户 2286, 累计上传 132.06 MB, 累计下载 1.45 GB
客户 3149, 累计上传 170.68 MB, 累计下载 2.14 GB
客户 2318, 累计上传 125.12 MB, 累计下载 1.21 GB
客户 2145, 累计上传 149.16 MB, 累计下载 1.21 GB
客户 3216, 累计上传 86.17 MB, 累计下载 1.62 GB
客户 2165, 累计上传 83.71 MB, 累计下载 2.22 GB
客户 2168, 累计上传 151.11 MB, 累计下载 3.56 GB
客户 2584, 累计上传 439.95 MB, 累计下载 1.81 GB
客户 2637, 累计上传 155.06 MB, 累计下载 1.06 GB
客户 2282, 累计上传 92.47 MB, 累计下载 1.41 GB
客户 2230, 累计上传 146.40 MB, 累计下载 1.10 GB
客户 2292, 累计上传 164.94 MB, 累计下载 1.85 GB
客户 2275, 累计上传 94.16 MB, 累计下载 1.06 GB
客户 2199, 累计上传 111.02 MB, 累计下载 1.58 GB
客户 2193, 累计上传 102.89 MB, 累计下载 1.23 GB
客户 2350, 累计上传 214.37 MB, 累计下载 1.18 GB
客户 2227, 累计上传 137.89 MB, 累计下载 1.02 GB
客户 2554, 累计上传 75.44 MB, 累计下载 3.66 GB
客户 3631, 累计上传 91.58 MB, 累计下载 1.23 GB
客户 2152, 累计上传 46.46 MB, 累计下载 1.13 GB
客户 2216, 累计上传 198.57 MB, 累计下载 2.57 GB
客户 2212, 累计上传 126.83 MB, 累计下载 2.32 GB
客户 2351, 累计上传 239.03 MB, 累计下载 1.91 GB
客户 2103, 累计上传 67.78 MB, 累计下载 1.80 GB
客户 2239, 累计上传 31.61 MB, 累计下载 1.56 GB
客户 2585, 累计上传 134.78 MB, 累计下载 1.36 GB
客户 2281, 累计上传 168.70 MB, 累计下载 3.46 GB
客户 2336, 累计上传 86.22 MB, 累计下载 1.21 GB
客户 2251, 累计上传 616.93 MB, 累计下载 3.85 GB
客户 2237, 累计上传 393.38 MB, 累计下载 2.37 GB
客户 2182, 累计上传 42.70 MB, 累计下载 2.31 GB
客户 2338, 累计上传 128.34 MB, 累计下载 1.60 GB
客户 2198, 累计上传 113.61 MB, 累计下载 2.29 GB
客户 2515, 累计上传 210.74 MB, 累计下载 1.72 GB
客户 3689, 累计上传 114.92 MB, 累计下载 2.45 GB
客户 2643, 累计上传 397.99 MB, 累计下载 2.95 GB
客户 2124, 累计上传 122.00 MB, 累计下载 1.45 GB
客户 2267, 累计上传 232.62 MB, 累计下载 1.69 GB
客户 2517, 累计上传 580.48 MB, 累计下载 3.26 GB
客户 2168, 累计上传 458.48 MB, 累计下载 2.73 GB
客户 2238, 累计上传 255.61 MB, 累计下载 1.45 GB
客户 2548, 累计上传 290.82 MB, 累计下载 1.46 GB
客户 2334, 累计上传 24.67 MB, 累计下载 1.36 GB
客户 2516, 累计上传 19.01 MB, 累计下载 1.08 GB
客户 2354, 累计上传 180.52 MB, 累计下载 3.71 GB
客户 2178, 累计上传 80.86 MB, 累计下载 1.17 GB
客户 2287, 累计上传 223.61 MB, 累计下载 1.24 GB
客户 2283, 累计上传 24.77 MB, 累计下载 1.34 GB
客户 2581, 累计上传 57.84 MB, 累计下载 1.75 GB
客户 2278, 累计上传 49.19 MB, 累计下载 1.48 GB
客户 2520, 累计上传 271.72 MB, 累计下载 1.39 GB
客户 2515, 累计上传 124.44 MB, 累计下载 2.91 GB
客户 2622, 累计上传 173.31 MB, 累计下载 1.39 GB
客户 2340, 累计上传 426.83 MB, 累计下载 3.03 GB
客户 2239, 累计上传 55.08 MB, 累计下载 1.03 GB
客户 2643, 累计上传 133.89 MB, 累计下载 1.60 GB
客户 3631, 累计上传 127.87 MB, 累计下载 2.14 GB
客户 2159, 累计上传 70.39 MB, 累计下载 1.12 GB
客户 2267, 累计上传 83.67 MB, 累计下载 1.58 GB
客户 2237, 累计上传 90.73 MB, 累计下载 1.16 GB
客户 2344, 累计上传 210.80 MB, 累计下载 1.87 GB
客户 2140, 累计上传 126.44 MB, 累计下载 2.11 GB
客户 2351, 累计上传 300.89 MB, 累计下载 2.40 GB
客户 2168, 累计上传 105.21 MB, 累计下载 2.92 GB
客户 2231, 累计上传 62.63 MB, 累计下载 1.18 GB
客户 2549, 累计上传 107.10 MB, 累计下载 1.65 GB
客户 2328, 累计上传 206.15 MB, 累计下载 2.17 GB
客户 2317, 累计上传 27.01 MB, 累计下载 1.12 GB
客户 3530, 累计上传 49.77 MB, 累计下载 2.50 GB
客户 2165, 累计上传 277.37 MB, 累计下载 2.12 GB
客户 2576, 累计上传 215.68 MB, 累计下载 2.09 GB
客户 3517, 累计上传 119.32 MB, 累计下载 1.04 GB
客户 2221, 累计上传 78.07 MB, 累计下载 1.25 GB
客户 2178, 累计上传 159.98 MB, 累计下载 1.92 GB
客户 2121, 累计上传 69.73 MB, 累计下载 1.07 GB
客户 2180, 累计上传 93.20 MB, 累计下载 1.44 GB
客户 2193, 累计上传 582.96 MB, 累计下载 1.01 GB
客户 2341, 累计上传 160.14 MB, 累计下载 1.12 GB
客户 2141, 累计上传 64.65 MB, 累计下载 1.76 GB
客户 2366, 累计上传 80.45 MB, 累计下载 1.57 GB
客户 2297, 累计上传 214.26 MB, 累计下载 1.57 GB
客户 2226, 累计上传 115.87 MB, 累计下载 3.91 GB
客户 2227, 累计上传 399.15 MB, 累计下载 2.51 GB
客户 2516, 累计上传 61.39 MB, 累计下载 3.30 GB
客户 2120, 累计上传 119.32 MB, 累计下载 1.62 GB
客户 2254, 累计上传 112.54 MB, 累计下载 2.14 GB
客户 2251, 累计上传 55.74 MB, 累计下载 1.95 GB
客户 2334, 累计上传 58.86 MB, 累计下载 1.14 GB
客户 2346, 累计上传 32.44 MB, 累计下载 1.09 GB
客户 2343, 累计上传 356.88 MB, 累计下载 2.92 GB
客户 2103, 累计上传 107.08 MB, 累计下载 1.74 GB
客户 2517, 累计上传 122.51 MB, 累计下载 2.33 GB
客户 3216, 累计上传 164.99 MB, 累计下载 1.99 GB
客户 2132, 累计上传 116.47 MB, 累计下载 1.04 GB
客户 2150, 累计上传 131.38 MB, 累计下载 2.06 GB
客户 2256, 累计上传 130.49 MB, 累计下载 1.50 GB
客户 2348, 累计上传 146.25 MB, 累计下载 1.41 GB
客户 2385, 累计上传 121.17 MB, 累计下载 1.87 GB
客户 2561, 累计上传 136.92 MB, 累计下载 1.32 GB
客户 2643, 累计上传 218.95 MB, 累计下载 1.97 GB
客户 2338, 累计上传 92.80 MB, 累计下载 1.36 GB
客户 2281, 累计上传 93.64 MB, 累计下载 1.21 GB
客户 2515, 累计上传 145.34 MB, 累计下载 1.39 GB
客户 2165, 累计上传 74.34 MB, 累计下载 1.06 GB
客户 2353, 累计上传 364.70 MB, 累计下载 3.44 GB
客户 2585, 累计上传 184.36 MB, 累计下载 1.12 GB
客户 2216, 累计上传 83.84 MB, 累计下载 3.41 GB
客户 2277, 累计上传 81.40 MB, 累计下载 1.19 GB
客户 2337, 累计上传 107.83 MB, 累计下载 1.06 GB
客户 2558, 累计上传 407.98 MB, 累计下载 2.58 GB
客户 3585, 累计上传 20.43 MB, 累计下载 1.06 GB
客户 2211, 累计上传 137.79 MB, 累计下载 1.88 GB
客户 2212, 累计上传 128.41 MB, 累计下载 1.40 GB
客户 2312, 累计上传 42.02 MB, 累计下载 1.46 GB
客户 2262, 累计上传 1.67 GB, 累计下载 3.34 GB
客户 2160, 累计上传 24.92 MB, 累计下载 1.09 GB
客户 2294, 累计上传 65.90 MB, 累计下载 1.43 GB
客户 2251, 累计上传 42.16 MB, 累计下载 1.62 GB
客户 2168, 累计上传 81.11 MB, 累计下载 1.71 GB
客户 2259, 累计上传 321.26 MB, 累计下载 1.66 GB
客户 2363, 累计上传 91.26 MB, 累计下载 2.66 GB
客户 2182, 累计上传 93.88 MB, 累计下载 2.28 GB
客户 2354, 累计上传 62.91 MB, 累计下载 1.07 GB
客户 2264, 累计上传 468.39 MB, 累计下载 2.62 GB
客户 2288, 累计上传 176.72 MB, 累计下载 3.53 GB
客户 3689, 累计上传 186.77 MB, 累计下载 2.13 GB
客户 2254, 累计上传 257.97 MB, 累计下载 2.63 GB
客户 2338, 累计上传 80.27 MB, 累计下载 1.01 GB
客户 2516, 累计上传 49.23 MB, 累计下载 2.26 GB
客户 2168, 累计上传 124.67 MB, 累计下载 2.54 GB
客户 2260, 累计上传 615.30 MB, 累计下载 3.07 GB
客户 2141, 累计上传 146.10 MB, 累计下载 1.32 GB
客户 2548, 累计上传 153.50 MB, 累计下载 1.05 GB
客户 2147, 累计上传 67.22 MB, 累计下载 1.48 GB
客户 2234, 累计上传 42.01 MB, 累计下载 1.25 GB
客户 2238, 累计上传 187.29 MB, 累计下载 1.22 GB
发表于 2013-5-9 17:41:05 | 显示全部楼层
看着版主的一行代码,左看右看,看不懂!
能解释一下吗!
发表于 2013-5-9 17:44:56 | 显示全部楼层
本帖最后由 云中听雨 于 2013-5-9 18:13 编辑

我也写了个第1个问题的:

  1. @echo off
  2. for /f "tokens=3* delims= "  %%a in (a.txt) do (
  3. if "%%a"=="PPPoE" (set "b=%%b")
  4. if "%%a"=="连接时间:" (set "b1=%%b"& call :main)
  5. )
  6. pause
  7. exit
  8. :main
  9. set "b=%b:~0,7%"
  10. set "b1=%b1:*累计上传=累计上传%"
  11. echo/%b%,%b1% >>b.txt
  12. for /f "tokens=2,4,5,7*" %%c in ("%b% %b1%") do echo/%%c,%%d %%e%%f %%g >>c.txt
  13. goto :eof
复制代码
发表于 2013-5-9 18:12:25 | 显示全部楼层
第2 个问题的!

  1. @echo off
  2. for /f "tokens=2,4,7 delims=, " %%a in (gb.txt) do (
  3. set "a1=%%a" & set "a2=%%b"& set "a3=%%c"
  4. call :leiji
  5. )
  6. set ci=1
  7. :pai
  8. set/a b2=0
  9. set/a c3=0
  10. for /f "tokens=1,2,3" %%a in (tmpp.txt) do (
  11. set "a1=%%a"& set/a a2=%%b& set/a a3=%%c
  12. call :bijiao
  13. )

  14. echo/ %ci%.客户 %b1% ,累计上传%b2:~,-2%.%b2:~-2%MB,累计下载%b3:~,-2%.%b3:~-2%GB >>a.txt
  15. echo/ %ci%.客户 %c1% ,累计下载%c3:~,-2%.%c3:~-2%GB,累计上传%c2:~,-2%.%c2:~-2%MB >>b.txt
  16. set/a ci+=1
  17. if %ci% lss 11 goto pai
  18. del/q tmpp.txt
  19. echo 已经整理完毕!即将退出。
  20. ping -n 2 baidu.com >nul&exit

  21. :bijiao
  22. set/a a2=%a2%
  23. set/a a3=%a3%
  24. if exist a.txt (for /f "tokens=2" %%x in (a.txt) do (if %a1%==%%x goto bijiao2))
  25. if %b2% leq %a2% (set "b1=%a1%" & set/a b2=%a2% & set/a b3=%a3%)

  26. :bijiao2
  27. if exist b.txt (for /f "tokens=2" %%y in (b.txt) do (if %a1%==%%y goto :eof))
  28. if %c3% leq %a3% (set "c1=%a1%" & set/a c2=%a2% & set/a c3=%a3%)
  29. goto :eof

  30. :leiji
  31. if exist tmpp.txt (for /f "tokens=1" %%z in (tmpp.txt) do (if %a1%==%%z goto :eof))
  32. set a2=%a2:.=%
  33. set a3=%a3:.=%
  34. for /f "tokens=2,4,7 delims=, " %%d in (gb.txt) do (
  35. set b1=%%d& set b2=%%e& set b3=%%f
  36. if %a1%==%%d call :leiji2
  37. )
  38. echo %a1% %a2% %a3% >>tmpp.txt
  39. goto :eof
  40. :leiji2
  41. set b2=%b2:.=%
  42. set b3=%b3:.=%
  43. set/a a2+=%b2%
  44. set/a a3+=%b3%
  45. goto :eof

复制代码
发表于 2013-5-9 18:55:45 | 显示全部楼层
回复 4# keshun

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=2,4,5,8,9 delims=,. " %%a in (gb.txt) do (
  3.   set "up=%%b%%c"&set "down=%%d%%e"
  4.   set /a [%%a+=up,]%%a+=down
  5. )
  6. call :sc "[" "MB" "上传" "a.txt"
  7. call :sc "]" "GB" "下载" "b.txt"
  8. del tmp&pause&exit /b
  9. :sc
  10. for /f "tokens=1-2 delims==[]" %%a in ('set %~1') do (
  11.   set "str=##########%%b"
  12.   set "%~1!str:~-10,-2!.!str:~-2! %~2=%%a"
  13. )
  14. set %~1#|sort /+10000 >tmp
  15. set n=0
  16. (for /f "tokens=1,2 delims==[]#" %%a in (tmp) do (
  17.   echo 客户 %%b,累计%~3 %%a
  18.   set /a n+=1
  19.   if !n! equ 10 goto :eof
  20. ))>%4
复制代码
练手,供参考...
发表于 2013-5-9 19:02:30 | 显示全部楼层
上面感觉应该还可以简化点,哪位前辈能出手写个纯批的给我们学习下。。。
发表于 2013-5-9 19:34:25 | 显示全部楼层
第一个,练习。

  1. @echo off&setlocal enabledelayedexpansion
  2. findstr /i "[0-9].连接时间" a.txt >$t
  3. findstr /i "[0-9].已断开" a.txt >$u
  4. (for /f "tokens=4,5 delims=/ " %%a in ($u) do (
  5.   set /p ".="
  6.   for /f "tokens=2,3 delims=," %%i in ("!.!") do echo %%a %%b,%%i,%%j
  7. ))<$t>b.txt
  8. (for /f "tokens=2,4,5,7,8 delims= " %%a in (b.txt) do echo %%a%%b%%c%%d%%e)>c.txt
  9. del $?
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

发表于 2013-5-9 22:04:28 | 显示全部楼层
回复 5# 云中听雨

可以看看这个教程: http://www.gnu.org/software/sed/manual/sed.html
论坛中也有一些 sed 教程。
发表于 2013-5-9 22:37:52 | 显示全部楼层
我太菜了,
压力山大,看不懂也。
发表于 2013-5-10 00:46:23 | 显示全部楼层
GAWK 处理轻松点哦
第一问就不发了
处理第二问
  1. gawk "{if ($5 != "GB,") {a[$2]+=$4} else {a[$2]+=$4*1024};t[a[$2]] = $2;if ($8 != "MB,") {m[$2]+=$7} else {m[$2]+=$7/1024};p[m[$2]] = $2}END{l=asort(a,b);asort(m,n);for(i=l;i>l-10;i--) {print t[b[i]],"累计上传",b[i];print p[n[i]],"累计下载",n[i] >"gbb.txt"}}" gb.txt >gba.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
tmplinshi + 1 cool

查看全部评分

 楼主| 发表于 2013-5-10 01:00:41 | 显示全部楼层
本帖最后由 keshun 于 2013-5-11 14:45 编辑

在此请教个问题,望高手解答!!!
软路由导出的文本a.txt,直接用批处理提取内容,总是提取不全会出错。
但在XP下新建个文本把内容复制进出后,在进行批处理就一切正常。
原文本内容进行修改或另存为,而且也进行编码转换后处理都还是不正常,真搞不懂。

附件为原文本,直接用下面批处理会出错,请指教??

  1. @echo off
  2. setlocal enabledelayedexpansion

  3. (for /f "delims=" %%a in (a.txt) do (
  4.   set "aa=%%a"
  5.   for %%b in ("!aa: =" "!") do (
  6.     set "bb=%%~b"
  7.     if /i "!bb:~,5!"=="user=" set /p=!bb!   <nul
  8.     if /i "!bb:~,8!"=="profile=" set /p=!bb!   <nul
  9.     if /i "!bb:~,3!"=="cn=" set /p=!bb!   <nul
  10.     if /i "!bb:~,13!"=="expire_since=" set /p=!bb!   <nul
  11.   )
  12.   echo,
  13. ))>>b.txt
复制代码
发表于 2013-5-10 08:23:02 | 显示全部楼层
编码问题,你导出的文本编码是UTF-8,处理前要先转换为ANSI
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 05:54 , Processed in 0.036460 second(s), 15 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表