[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 PowerShell 于 2014-5-14 18:00 编辑

用powershell玩简单统计是可靠地,比如你的压缩,代码如下:
  1. 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}
----------------------------
如果区别大小写的话,用
  1. Get-Content a:\pscode\a.txt | Group-Object  -CaseSensitive  | Format-List
复制代码
脚本是写给人看的,是写给用户看的,而不是写给机子看的
用户能看懂、会修改的脚本,才是好脚本。
写易懂的powershell脚本帮人解决问题,进而让用户学会自渔,吾所愿也

TOP

你发帖1分钟前,我正好更正了,
脚本是写给人看的,是写给用户看的,而不是写给机子看的
用户能看懂、会修改的脚本,才是好脚本。
写易懂的powershell脚本帮人解决问题,进而让用户学会自渔,吾所愿也

TOP

本帖最后由 PowerShell 于 2014-5-15 11:58 编辑

楼顶压缩包,按照区分大小写,并按照 数量倒着排序的命令为:
  1. 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
脚本是写给人看的,是写给用户看的,而不是写给机子看的
用户能看懂、会修改的脚本,才是好脚本。
写易懂的powershell脚本帮人解决问题,进而让用户学会自渔,吾所愿也

TOP

请立马放出     http ftp 百度网盘下载地址
16g内存 +64位os实测 powershell开1.2G文件没问题。另外如果重复统计,应该用数据库,统计次数越多,数据库越有优势。
脚本是写给人看的,是写给用户看的,而不是写给机子看的
用户能看懂、会修改的脚本,才是好脚本。
写易懂的powershell脚本帮人解决问题,进而让用户学会自渔,吾所愿也

TOP

你的数据很有意思:
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个。这个结果对了么?

------------------------------------------------------------------------------------------------------------
脚本是写给人看的,是写给用户看的,而不是写给机子看的
用户能看懂、会修改的脚本,才是好脚本。
写易懂的powershell脚本帮人解决问题,进而让用户学会自渔,吾所愿也

TOP

返回列表