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

[文本处理] [已解决]批处理如何统计词频(统计重复行的数量/每行重复出现的次数)?

本帖最后由 pcl_test 于 2016-8-13 11:22 编辑

请问批处理可以统计词频吗?
4字一行,只统计4字词组出现的频率。
如:
  1. 一丘之貉
  2. 一丝不挂
  3. 一丝不苟
  4. 一事无成
  5. 一亲对老
  6. 一分身又
  7. 一叶知秋
  8. 一叶知秋
  9. 一叶障目
  10. 一叶障目
  11. 一往无前
  12. 一往无前
  13. 一往无前
复制代码
实现如下:
  1. 一丘之貉 1
  2. 一丝不挂 1
  3. 一丝不苟 1
  4. 一事无成 1
  5. 一亲对老 1
  6. 一分身又 1
  7. 一叶知秋 2
  8. 一叶障目 2
  9. 一往无前 3
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

win7以上系统
  1. powershell -c "gc '测试.txt'|group $_|%%{$_.name+' '+$_.count}"
  2. pause
复制代码

TOP

本帖最后由 pcl_test 于 2016-8-13 11:18 编辑

http://www.bathome.net/s/tool/index.html?key=gawk
  1. gawk "{a[$0]++}END{for (b in a)print b,a[b]}" "测试.txt">"结果.txt"
复制代码

TOP

回复 4# CrLf
soga,感谢分享

TOP

回复 3# pcl_test


    以前联盟有个办法:
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('type "测试.txt"') do set /a "#%%a#+=1"
  3. for /f "tokens=1* delims=#=" %%a in ('set #') do echo %%a %%b
  4. pause
复制代码
2

评分人数

TOP

本帖最后由 pcl_test 于 2015-5-30 14:33 编辑
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('type "测试.txt"') do (
  3. set "str=%%a"
  4. if not defined #%%a# (
  5. set n=0
  6. for /f %%b in ('findstr /c:"%%a" "测试.txt"') do set /a n+=1
  7. echo;%%a !n!
  8. set "#%%a#=def"
  9. )
  10. )
  11. pause
复制代码
1

评分人数

TOP

sort a.txt | uniq -c
1

评分人数

TOP

返回列表