标题: [文本处理] 批处理如何统计txt文本每行字符串出现的次数? [打印本页]
作者: nono84223860 时间: 2014-5-14 13:12 标题: 批处理如何统计txt文本每行字符串出现的次数?
- @echo off&setlocal enabledelayedexpansion
- sort a.txt | findstr . >temp.tx
- set /pstr=<temp.tx
- set num=1000000001
- (for /f "skip=1 delims=" %%i in (temp.tx) do (
- if "!str!" neq "%%i" (
- echo;!num:~1! !str!
- set num=1000000001
- ) else set /a num+=1
- set str=%%i
- )
- echo;!num:~1! !str!
- )>sort.txt
- sort /r sort.txt >temp.tx
- (for /f "tokens=* delims=0" %%i in (temp.tx) do echo;%%i)>sort.txt
- del temp.tx
- pause
复制代码
求解用这个代码统计数字可以,英文就不行
解压后然后用这个BAT进行统计,就出问题
统计后,很多重复出现的
统计后的:
513340 a
125258 q <<<<-----------------------------------------------------------------------------
76660 w
71654 z
39801 s
37051 x
29514 l
21589 c
21297 y
19345 z
16611 m
14866 f
14802 h
14050 d
12060 g
11941 b
11021 k
10528 t
10507 j
9588 p
9406 w
6718 q <<<<----------------------------------------------------------------------------------------
6495 A
4691 l
4258 r
3918 e
3402 h
3195 n
3155 v
2813 o
2559 o
2471 E
1763 i
1654 Q
1111 Z
1017 W
933 L
920 u
857 X
777 b
645 H
505 F
491 S
426 G
404 B
393 C
388 Y
384 D
383 O
366 M
307 T
292 K
272 J
235 n
230 P
168 R
114 N
79 I
46 V
21 U
1 y
1 W
1 v
1 u
1 t
1 R
1 O
1 k
1 j
1 I
1 g
1 f
大神过帮帮我,纠结了差不多半个月了,我需要统计一个70MB左右的TXT文本文档。。。。
原地址6楼
http://www.bathome.net/redirect. ... 2881&ptid=24860
作者: nono84223860 时间: 2014-5-14 13:17
在线等。。。。。。。。。。。。。。。。。。。。。。。。
作者: PowerShell 时间: 2014-5-14 15:39
本帖最后由 PowerShell 于 2014-5-14 18:00 编辑
用powershell玩简单统计是可靠地,比如你的压缩,代码如下:- Get-Content a:\pscode\a.txt | Group-Object | Format-List
复制代码
返回:
Name : A
Count : 519835
Group : {A, A, A, A...}
Values : {A}
Name : B
Count : 13122
Group : {B, B, B, B...}
Values : {B}
Name : C
Count : 21982
Group : {C, C, C, C...}
Values : {C}
Name : D
Count : 14434
Group : {D, D, D, D...}
Values : {D}
Name : E
Count : 6389
Group : {E, E, E, E...}
Values : {E}
Name : F
Count : 15372
Group : {F, F, F, F...}
Values : {F}
Name : G
Count : 12487
Group : {G, G, G, G...}
Values : {G}
Name : H
Count : 18849
Group : {H, H, H, H...}
Values : {H}
Name : I
Count : 1843
Group : {I, I, I, I...}
Values : {I}
Name : J
Count : 10780
Group : {J, J, J, J...}
Values : {J}
Name : K
Count : 11314
Group : {K, K, K, K...}
Values : {K}
Name : L
Count : 35138
Group : {L, L, L, L...}
Values : {L}
Name : M
Count : 16977
Group : {M, M, M, M...}
Values : {M}
Name : N
Count : 3544
Group : {N, N, N, N...}
Values : {N}
Name : O
Count : 5756
Group : {O, O, O, O...}
Values : {O}
Name : P
Count : 9818
Group : {P, P, P, P...}
Values : {P}
Name : Q
Count : 133630
Group : {Q, Q, Q, Q...}
Values : {Q}
Name : R
Count : 4427
Group : {R, R, R, R...}
Values : {R}
Name : S
Count : 40292
Group : {S, S, S, S...}
Values : {S}
Name : T
Count : 10836
Group : {T, T, T, T...}
Values : {T}
Name : U
Count : 942
Group : {U, U, U, U...}
Values : {U}
Name : V
Count : 3202
Group : {V, V, V, V...}
Values : {V}
Name : W
Count : 87084
Group : {W, W, W, W...}
Values : {W}
Name : X
Count : 37908
Group : {X, X, X, X...}
Values : {X}
Name : Y
Count : 21686
Group : {Y, Y, Y, Y...}
Values : {Y}
Name : Z
Count : 92110
Group : {Z, Z, Z, Z...}
Values : {Z}
----------------------------
如果区别大小写的话,用- Get-Content a:\pscode\a.txt | Group-Object -CaseSensitive | Format-List
复制代码
作者: CrLf 时间: 2014-5-14 18:00
本帖最后由 CrLf 于 2014-5-14 18:09 编辑
统计错个毛,他没区分大小写罢了,if "!str!" neq "%%i" 改 if /i "!str!" neq "%%i" 就是正确结果
到底谁坑爹,文本解析不用 shell 用 powershell ?得了吧- sort a.txt | uniq -c | sort -o b.txt
复制代码
不区分大小写:- sort a.txt | uniq -i -c | sort -o b.txt
复制代码
作者: PowerShell 时间: 2014-5-14 18:05
你发帖1分钟前,我正好更正了,
作者: nono84223860 时间: 2014-5-14 18:21
回复 7# PowerShell
我是WIN7 系统 网上下载这个东西好像无法安装
作者: nono84223860 时间: 2014-5-14 18:40
本帖最后由 nono84223860 于 2014-5-14 18:44 编辑
回复 7# PowerShell
我会用了,但是,我想按多到少排序最好就是有个文本文档这样子,
我发的那个RAR只是其中一部分数据 ,我的数据达到50MB的,
能改进一下人家的脚本吗
作者: CrLf 时间: 2014-5-14 20:01
回复 11# nono84223860
50M 略大,个人建议太大的文件用 gnu 的那一堆文本流处理工具搞定,不然无论是内存还是效率都堪忧,这里没有针对 powershell,因为用 js 也是这样,把文本转成对象占用的内存翻了好几倍,面对对象的脚本应该在更合适的地方发挥长处,术业有专攻么
作者: nono84223860 时间: 2014-5-14 20:44
回复 12# CrLf
我是小白,完全不懂,你教教我吗,
作者: nono84223860 时间: 2014-5-14 20:45
回复 12# CrLf
如果能改进一下,我发的那个脚本就好了,大神能做到吗
作者: CrLf 时间: 2014-5-14 21:07
回复 14# nono84223860
8 楼是不是白发了
作者: nono84223860 时间: 2014-5-14 23:00
回复 12# CrLf
PS F:\1234> sort a.txt | uniq -c | sort -o b.txt
无法将“uniq”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后重
试。
所在位置 行:1 字符: 18
+ sort a.txt | uniq <<<< -c | sort -o b.txt
+ CategoryInfo : ObjectNotFound: (uniq:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
这是什么意思
作者: nono84223860 时间: 2014-5-14 23:01
回复 15# CrLf
我不太会用你的脚本。我是不是指定的路径错了
作者: nono84223860 时间: 2014-5-14 23:05
回复 15# CrLf
楼顶我发的脚本处理速度很快。
作者: nono84223860 时间: 2014-5-14 23:06
回复 15# CrLf
你发的脚本,我还是不会用
作者: CrLf 时间: 2014-5-14 23:13
回复 18# nono84223860
对呀,不是回复你把顶楼脚本的 if "!str!" neq "%%i" 改 if /i "!str!" neq "%%i" 了吗?
作者: nono84223860 时间: 2014-5-14 23:32
本帖最后由 nono84223860 于 2014-5-14 23:40 编辑
回复 15# CrLf
大神好像不太行,我刚刚改了 测试了两次 很多不见了 我想大小写也区分,
519835 a
133630 q
92110 z
87084 W
40292 S
37908 X
35138 l
21982 c
21686 y
18849 h
16977 M
15372 f
14434 d
13122 b
12487 g
11314 k
10836 t
10780 j
9818 P
6389 E
5756 O
4427 R
3544 n
3202 v
1843 I
942 u
统计出很多不见了
作者: CrLf 时间: 2014-5-15 01:16
回复 21# nono84223860
自带的 sort 不分大小写,所以建议用 gnu 版本,强大快捷
作者: Batcher 时间: 2014-5-15 08:32
回复 16# nono84223860
这个命令不能在PowerShell的提示符下面执行,需要在CMD的提示符下面执行。另外你需要下载好sort.exe和uniq.exe
作者: nono84223860 时间: 2014-5-15 08:51
回复 22# CrLf
请问一下gnu在哪里有的下载,百度不到,
作者: nono84223860 时间: 2014-5-15 08:54
回复 23# Batcher
uniq.exe这个我也百度不到
sort.exe这个系统已经有了
作者: nono84223860 时间: 2014-5-15 09:03
回复 22# CrLf
我有UE,UE能做到这样的处理吗?
作者: nono84223860 时间: 2014-5-15 09:03
回复 23# Batcher
我有UE,UE能做到这样的处理吗
作者: Batcher 时间: 2014-5-15 10:26
回复 25# nono84223860
UnxUtils里面有sort.exe(跟系统自带的那个sort.exe不一样)和uniq.exe
http://sourceforge.net/projects/unxutils/files/
作者: nono84223860 时间: 2014-5-15 10:50
回复 28# Batcher
搞了半天都不懂下载,我发出来,你帮我处理好吗。就一个70MB的TXT
作者: PowerShell 时间: 2014-5-15 11:50
本帖最后由 PowerShell 于 2014-5-15 11:58 编辑
楼顶压缩包,按照区分大小写,并按照 数量倒着排序的命令为:- Get-Content a:\pscode\a.txt | Group-Object -CaseSensitive | Sort-Object -Property count -Descending | Format-List
复制代码
返回:
Name : a
Count : 513340
Group : {a, a, a, a...}
Values : {a}
Name : q
Count : 131976
Group : {q, q, q, q...}
Values : {q}
Name : z
Count : 90999
Group : {z, z, z, z...}
Values : {z}
Name : w
Count : 86066
Group : {w, w, w, w...}
Values : {w}
Name : s
Count : 39801
Group : {s, s, s, s...}
Values : {s}
Name : x
Count : 37051
Group : {x, x, x, x...}
Values : {x}
Name : l
Count : 34205
Group : {l, l, l, l...}
Values : {l}
Name : c
Count : 21589
Group : {c, c, c, c...}
Values : {c}
Name : y
Count : 21298
Group : {y, y, y, y...}
Values : {y}
Name : h
Count : 18204
Group : {h, h, h, h...}
Values : {h}
Name : m
Count : 16611
Group : {m, m, m, m...}
Values : {m}
Name : f
Count : 14867
Group : {f, f, f, f...}
Values : {f}
Name : d
Count : 14050
Group : {d, d, d, d...}
Values : {d}
Name : b
Count : 12718
Group : {b, b, b, b...}
Values : {b}
Name : g
Count : 12061
Group : {g, g, g, g...}
Values : {g}
Name : k
Count : 11022
Group : {k, k, k, k...}
Values : {k}
Name : t
Count : 10529
Group : {t, t, t, t...}
Values : {t}
Name : j
Count : 10508
Group : {j, j, j, j...}
Values : {j}
Name : p
Count : 9588
Group : {p, p, p, p...}
Values : {p}
Name : A
Count : 6495
Group : {A, A, A, A...}
Values : {A}
Name : o
Count : 5372
Group : {o, o, o, o...}
Values : {o}
Name : r
Count : 4258
Group : {r, r, r, r...}
Values : {r}
Name : e
Count : 3918
Group : {e, e, e, e...}
Values : {e}
Name : n
Count : 3430
Group : {n, n, n, n...}
Values : {n}
Name : v
Count : 3156
Group : {v, v, v, v...}
Values : {v}
Name : E
Count : 2471
Group : {E, E, E, E...}
Values : {E}
Name : i
Count : 1763
Group : {i, i, i, i...}
Values : {i}
Name : Q
Count : 1654
Group : {Q, Q, Q, Q...}
Values : {Q}
Name : Z
Count : 1111
Group : {Z, Z, Z, Z...}
Values : {Z}
Name : W
Count : 1018
Group : {W, W, W, W...}
Values : {W}
Name : L
Count : 933
Group : {L, L, L, L...}
Values : {L}
Name : u
Count : 921
Group : {u, u, u, u...}
Values : {u}
Name : X
Count : 857
Group : {X, X, X, X...}
Values : {X}
Name : H
Count : 645
Group : {H, H, H, H...}
Values : {H}
Name : F
Count : 505
Group : {F, F, F, F...}
Values : {F}
Name : S
Count : 491
Group : {S, S, S, S...}
Values : {S}
Name : G
Count : 426
Group : {G, G, G, G...}
Values : {G}
Name : B
Count : 404
Group : {B, B, B, B...}
Values : {B}
Name : C
Count : 393
Group : {C, C, C, C...}
Values : {C}
Name : Y
Count : 388
Group : {Y, Y, Y, Y...}
Values : {Y}
Name : D
Count : 384
Group : {D, D, D, D...}
Values : {D}
Name : O
Count : 384
Group : {O, O, O, O...}
Values : {O}
Name : M
Count : 366
Group : {M, M, M, M...}
Values : {M}
Name : T
Count : 307
Group : {T, T, T, T...}
Values : {T}
Name : K
Count : 292
Group : {K, K, K, K...}
Values : {K}
Name : J
Count : 272
Group : {J, J, J, J...}
Values : {J}
Name : P
Count : 230
Group : {P, P, P, P...}
Values : {P}
Name : R
Count : 169
Group : {R, R, R, R...}
Values : {R}
Name : N
Count : 114
Group : {N, N, N, N...}
Values : {N}
Name : I
Count : 80
Group : {I, I, I, I...}
Values : {I}
Name : V
Count : 46
Group : {V, V, V, V...}
Values : {V}
Name : U
Count : 21
Group : {U, U, U, U...}
Values : {U}
-----------------------------------------------------------
首先,我首次发的没 注意到 区分大小写,乌龙了,抱歉。但我立马改正了。
面向兑现也是可以处理字符串的,如"aaaa".length ,面向对象处理起来很方便,有特色,我认为比面向字符好。
至于 性能,。net或许第一次慢,或许启动慢。没有其他问题。
至于具体性能,欢迎pk!占用内存多,我看更快,------参见去年的bat大赛统计目录那道题。
退一万步说,即使性能差点,用机子性能补写脚本简单,直观,功能强大,也值得。
你可以不喜欢没问题。我觉得好,你觉得坏,看你能打动我还是我能打动你,欢迎pk。
------------------------------------------------------
在 powershell中 有个排序功能叫做sort-object,它的简写是sort,但并不说明powershell不能运行外部sort
你只要输入sort。exe即可。
powershell除了不能运行cmd的内置命令外,运行任何外部命令,和cmd无差别。
-----------------------------------------------------------------------------------
Microsoft .NET Framework 4.52
http://www.microsoft.com/zh-CN/download/details.aspx?id=42642
Microsoft .NET Framework 4.52 简体中文语言包
http://www.microsoft.com/zh-CN/download/details.aspx?id=42641
Windows Management Framework 4.0
http://www.microsoft.com/zh-CN/download/details.aspx?id=40855
win7-sp1,先安装第一行的 。net4.52,然后安装第二行简体语言包,然后安装第三行 powershell4.0
作者: nono84223860 时间: 2014-5-15 14:43
本帖最后由 nono84223860 于 2014-5-15 14:54 编辑
回复 30# PowerShell
谢谢大神这么耐心回复,处理一个70MB的TXT压力大吗。我希望将分析出的结果导出道另一个新的TXT,比如导出到 b.txt。
作者: nono84223860 时间: 2014-5-15 14:50
回复 30# PowerShell
刚刚测试了,一个70MB的TXT无法处理,电脑都卡死机了。。。。。。。。。。。。。。
作者: nono84223860 时间: 2014-5-15 14:52
回复 30# PowerShell
我私人发给你,你能帮我处理一下吗
作者: terse 时间: 2014-5-15 15:14
回复 33# nono84223860
用P处理大文件 还是比较吃力吧
不清楚 sort 为什么会把字母分成如这样 fffffffFFFFFFFFf 的形式
你可以用GAWK 处理 估计效率可以提高点
另 JS 处理的 对于大文件估计也比较吃力 没测试- @if(0)==(0) echo off
- CScript.exe //NoLogo //E:JScript "%~f0" <a.txt >b.txt
- pause&goto:eof
- @end
- var arr = [];
- while (!WScript.StdIn.AtEndOfStream){
- var str = WScript.StdIn.Readline();
- if (arr[str]){arr[str]++};
- else {arr[str] = 1};
- }
- var array = [];
- for (var key in arr) array.push([key, arr[key]]);
- array.sort(function(a, b){ return b[1] - a[1];});
- for (var i = 0; i < array.length; i++) {
- WScript.Echo(array[i][0],array[i][1])
- }
复制代码
作者: nono84223860 时间: 2014-5-15 15:26
本帖最后由 nono84223860 于 2014-5-15 15:27 编辑
回复 34# terse
GAWK 我刚刚下载了一个,没有EXE应用程序,无法打开,不知道怎么了
哎,统计一个数据与有那么难吗。
很痛苦
作者: PowerShell 时间: 2014-5-15 15:27
请立马放出 http ftp 百度网盘下载地址
16g内存 +64位os实测 powershell开1.2G文件没问题。另外如果重复统计,应该用数据库,统计次数越多,数据库越有优势。
作者: nono84223860 时间: 2014-5-15 15:28
回复 36# PowerShell
好的,我马上网盘给你,我的是4G内存,等我
作者: nono84223860 时间: 2014-5-15 15:40
本帖最后由 nono84223860 于 2014-5-15 16:26 编辑
回复 36# PowerShell
作者: DAIC 时间: 2014-5-15 15:47
回复 35# nono84223860
从这里下载一个gawk试试
http://code.google.com/p/gnu-on-windows/downloads/list
作者: nono84223860 时间: 2014-5-15 15:50
回复 39# DAIC
.
刚刚下载了第一个,打开然后1秒后闪退。。。WIN7 系统
倒数第二个也不行。。。。。情况一样
作者: DAIC 时间: 2014-5-15 15:54
回复 40# nono84223860
下载之后,把gawk.exe放到C:\windows\system32文件夹下面。
把别人帮你写的gawk代码放到test.bat里面
执行test.bat
作者: nono84223860 时间: 2014-5-15 16:01
回复 41# DAIC
恩,我刚按照了你的操作方法
现在正在测试,等了大概5-10分钟左右,b.txt一直为0字节
但CPU好像一直在运行
作者: nono84223860 时间: 2014-5-15 16:07
回复 41# DAIC
厉害啊大神啊,一下子解决了,膜拜啊 大小写也区分了,厉害厉害
作者: DAIC 时间: 2014-5-15 16:10
回复 43# nono84223860
等36楼的ps1代码出来之后,可以跟gawk比较一下,哪个快就用哪个。
作者: nono84223860 时间: 2014-5-15 16:18
回复 44# DAIC
36楼的吃内存,电脑很卡,如果能内存大,可能这个快一些
你后面的方法 10分钟左右,完成70M的处理 准确无误 ,也算非常快的
efbcaffbadcceefahelldamnithelldamnit 1
dfbfbbcfbeffaef**leibofangleibofang 1
aedeaeffcfbfdbbdeleidcrleidcrzjj 1
adbabfddadceleileileileiwc 1
adadebebbaaddbleilovelleilovel 1
fdffbcbaccaabbaafleinaleideleinaleide 1
bbdbcdcbbleishangleishang 1
daeaabfbdbcebfdbcleitinleitin 1
caonniang 1
leizhiqiang 1
daaecacadedbbleklovescleklovesc 1
bcbbbablemonlemon 1
fdeccbeedcbshowliranshowliranbjhak 1
qudaohaod 1
efcadcceaefbbbfclennonleelennonlee 1
accaefedadleonbleonb 1
fcaafbfcleonalucardleonalucardmsnsazabi 1
ebbfdfbedleonardoleonardoeadcbaabbeeffe 1
bcddcdfac 1
fccffeaeaeeddleonidasleonidas 1
cbaceecacddaapcpspps 1
如果能改进一下,前面位数字,后面为英文,这样看得舒服点,如果改不了就算了,完美了,哈哈
作者: nono84223860 时间: 2014-5-15 16:23
回复 44# DAIC
最后非常感谢大神耐心指导,小弟感激不尽
作者: DAIC 时间: 2014-5-15 16:36
回复 45# nono84223860
这个是用几楼的代码得到的结果?
作者: nono84223860 时间: 2014-5-15 16:47
回复 47# DAIC
这个是70MB里面的其中一部分展示,里面再也没有出现重复了,准确无误,如果能在出现的次数放在前面,后面是英文就好看的比较舒服直观些,
大神果然厉害,哈哈 34楼
作者: DAIC 时间: 2014-5-15 17:22
回复 48# nono84223860 - @if(0)==(0) echo off
- CScript.exe //NoLogo //E:JScript "%~f0" <a.txt >b.txt
- pause&goto:eof
- @end
- var arr = [];
- while (!WScript.StdIn.AtEndOfStream){
- var str = WScript.StdIn.Readline();
- if (arr[str]){arr[str]++};
- else {arr[str] = 1};
- }
- var array = [];
- for (var key in arr) array.push([key, arr[key]]);
- array.sort(function(a, b){ return b[1] - a[1];});
- for (var i = 0; i < array.length; i++) {
- WScript.Echo(array[i][1],array[i][0])
- }
复制代码
作者: nono84223860 时间: 2014-5-15 21:46
本帖最后由 nono84223860 于 2014-5-15 21:54 编辑
回复 34# terse
又有新问题了。。。。。。。。。。。。。。。。
这个统计出来不完整。。。。
比如:
有410218个 123456 用以前的统计出来的123456
有24258个 123456 用你今天给我的统计123456
差很远。。怎么回事
如果是统计英文差距很小。因为以前的脚本有点问题。所以误差也不出奇,但是没什么差距,甚至有些英文出现次数还是一样的
作者: terse 时间: 2014-5-15 22:08
回复 50# nono84223860
什么情况啊 能表述详细否
作者: nono84223860 时间: 2014-5-15 22:11
回复 nono84223860
用P处理大文件 还是比较吃力吧
不清楚 sort 为什么会把字母分成如这样 fffffffFFFF ...
terse 发表于 2014-5-15 15:14
我用这个脚本统计数字,和我楼顶上的统计差距很大,
统计英文可以说什么误差
作者: terse 时间: 2014-5-15 22:13
回复 52# nono84223860
你弄个样本测试下
作者: nono84223860 时间: 2014-5-15 22:19
回复 53# terse
我处理了2个小时才完成,近200MB
刚刚我对比了一下
很多数字没有了
我发到你私聊里
你有Q吗,我私传给你
把Q发到我私聊里
作者: terse 时间: 2014-5-15 22:21
回复 52# nono84223860
另 原先的三方 GAWK 速度明显提高 可以试下
GAWK 论坛有下载的- @echo off
- (gawk -vt=10000000000 "{ar[$0]++}END{l=asorti(ar,b);for(i=1;i<=l;i++) a[ar[b[i]]+t,b[i]];asorti(a);for(i=l;i>=1;i--) {split(a[i],b,SUBSEP);print b[1]%%t,b[2]}}")<a.txt >b.txt
- pause
复制代码
作者: nono84223860 时间: 2014-5-15 22:25
回复 55# terse
好,我试试这个。
作者: PowerShell 时间: 2014-5-16 16:19
你的数据很有意思:
1 行数比较大,1000多万行,但每行并不长。直接用powershell命令来处理,比较费内存,我用16g内存也非常卡,但貌似有人有64也不128内存来着。有空我找他算算。
2 昨我用powershell手写了个占内存不太大的,占用内存不到2g,但是占用cpu比较多,测试的时候还有问题,就不发了。
3 我又写了个通用的文档切割脚本,把文档变小,50万行,powershell,或者excel就容易处理了。等下发上来。
4 我早说过,这类问题最好,最快就是用数据库。关系型数据库虽说大家都喊太慢,不如nosql。但玩这个还是很快的,我是指查询。
数据库玩这个,是一种以空间换时间的做法,做好了索引,就不用像脚本那样,每次都统计一遍数量了。
这不,我做好了sqlite的数据库,作的时候慢,尤其是索引,但关键是用索引,索引就是排序+数量统计,有了它,亿万数据瞬间直达,这不,
我下述的查询代码,基本上都2---3秒完成。
而且后续你又有了新的数据,可以继续往数据库中导入,插入,然后重新查询,也会很快。因为有了索引,基本上都2---3秒完成。
所以说,根本就不应该用脚本统计,就应该用数据库。你的问题用数据库解决才是完美的。
-------------------------用 sqlite 玩转你的问题 --------------------------------------------
压缩包=138MB
下载地址
http://pan.baidu.com/s/1bny7znL
用法:
1 安装Navicat_for_SQLite_11.0.10_XiaZaiBa.exe
2 打开数据库 wordcount ,右击main,选sql命令,输入查询语句。
表名=wordcount001
字段名=myword
查询某个单词‘A’,数量语句:
select count(myword) from wordcount001 where myword='A';
myword 所有行去重
SELECT DISTINCT myword from wordcount001 ;
输出2列,第一列单词名,第二列单词个数,单词个数最多的在上面。 ---这就是你要的
SELECT myword,count(myword) as chongfushu from wordcount001 group by myword order by chongfushu desc;
这个文档中小写的a最多,达到了513340个。这个结果对了么?
------------------------------------------------------------------------------------------------------------
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |