Board logo

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

作者: keshun    时间: 2013-5-9 02:19     标题: [己解决]请教代码!!批处理提取相关内容并输出

本帖最后由 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
作者: tmplinshi    时间: 2013-5-9 08:59

本帖最后由 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
作者: keshun    时间: 2013-5-9 13:15

回复 2# tmplinshi


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

输出的内容较大,要统计出累计上传和累计下载最大的10位用户,工作量还是很大的,在此希望版主给予帮助请求代码。
作者: keshun    时间: 2013-5-9 13:20

本帖最后由 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

看着版主的一行代码,左看右看,看不懂!
能解释一下吗!
作者: 云中听雨    时间: 2013-5-9 17:44

本帖最后由 云中听雨 于 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

第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
复制代码

作者: xxpinqz    时间: 2013-5-9 18:55

回复 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
复制代码
练手,供参考...
作者: xxpinqz    时间: 2013-5-9 19:02

上面感觉应该还可以简化点,哪位前辈能出手写个纯批的给我们学习下。。。
作者: xxpinqz    时间: 2013-5-9 19:34

第一个,练习。
  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 $?
复制代码

作者: tmplinshi    时间: 2013-5-9 22:04

回复 5# 云中听雨

可以看看这个教程: http://www.gnu.org/software/sed/manual/sed.html
论坛中也有一些 sed 教程。
作者: 云中听雨    时间: 2013-5-9 22:37

我太菜了,
压力山大,看不懂也。
作者: terse    时间: 2013-5-10 00:46

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
复制代码

作者: keshun    时间: 2013-5-10 01:00

本帖最后由 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
复制代码

作者: hijackle    时间: 2013-5-10 08:23

编码问题,你导出的文本编码是UTF-8,处理前要先转换为ANSI
作者: keshun    时间: 2013-5-10 12:33

回复 15# hijackle


    原文本和新建相同内容的文本我查询过编码都是GB2312,奇怪的是相同内容的两个文本,原文本出错,新文本正常。
作者: hijackle    时间: 2013-5-11 03:22

.........我说的那个附件的文本编码是UTF8啊,不是ANSI啊,批处理没法操作的,最简单的查看文本编码的方法,直接选择另存为的时候,就能看到当前文本的编码了
作者: tmplinshi    时间: 2013-5-11 03:45

在此请教个问题,望高手解答!!!
软路由导出的文本a.txt,直接用批处理提取内容,总是提取不全会出错。
...
keshun 发表于 2013-5-10 01:00



你上传的 a.txt 是 UTF-8 编码。可以用 iconv 转换:
  1. iconv -f utf-8 a.txt >a_gbk.txt
复制代码
(iconv 下载地址请搜索论坛或者 Google)




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2