标题: [文本处理] [已解决]批处理如何统计词频(统计重复行的数量/每行重复出现的次数)? [打印本页]
作者: 每天几分 时间: 2015-5-17 18:59 标题: [已解决]批处理如何统计词频(统计重复行的数量/每行重复出现的次数)?
本帖最后由 pcl_test 于 2016-8-13 11:22 编辑
请问批处理可以统计词频吗?
4字一行,只统计4字词组出现的频率。
如:- 一丘之貉
- 一丝不挂
- 一丝不苟
- 一事无成
- 一亲对老
- 一分身又
- 一叶知秋
- 一叶知秋
- 一叶障目
- 一叶障目
- 一往无前
- 一往无前
- 一往无前
复制代码
实现如下:- 一丘之貉 1
- 一丝不挂 1
- 一丝不苟 1
- 一事无成 1
- 一亲对老 1
- 一分身又 1
- 一叶知秋 2
- 一叶障目 2
- 一往无前 3
复制代码
作者: CrLf 时间: 2015-5-17 19:24
sort a.txt | uniq -c
作者: pcl_test 时间: 2015-5-17 19:28
本帖最后由 pcl_test 于 2015-5-30 14:33 编辑
- @echo off & setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('type "测试.txt"') do (
- set "str=%%a"
- if not defined #%%a# (
- set n=0
- for /f %%b in ('findstr /c:"%%a" "测试.txt"') do set /a n+=1
- echo;%%a !n!
- set "#%%a#=def"
- )
- )
- pause
复制代码
作者: CrLf 时间: 2015-5-17 21:27
回复 3# pcl_test
以前联盟有个办法:- @echo off & setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('type "测试.txt"') do set /a "#%%a#+=1"
- for /f "tokens=1* delims=#=" %%a in ('set #') do echo %%a %%b
- pause
复制代码
作者: pcl_test 时间: 2015-5-17 21:35
回复 4# CrLf
soga,感谢分享
作者: pcl_test 时间: 2015-5-17 22:25
本帖最后由 pcl_test 于 2016-8-13 11:18 编辑
http://www.bathome.net/s/tool/index.html?key=gawk- gawk "{a[$0]++}END{for (b in a)print b,a[b]}" "测试.txt">"结果.txt"
复制代码
作者: pcl_test 时间: 2016-10-9 21:04
win7以上系统- powershell -c "gc '测试.txt'|group $_|%%{$_.name+' '+$_.count}"
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |