免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: wang390750
打印 上一主题 下一主题

[文本处理] awk 统计单词 在行出现的次数 [复制链接]

论坛徽章:
24
申猴
日期:2014-10-10 15:56:39射手座
日期:2014-10-10 15:57:18黑曼巴
日期:2018-05-14 11:05:122016科比退役纪念章
日期:2018-05-14 11:05:0715-16赛季CBA联赛之北控
日期:2018-05-14 11:05:0015-16赛季CBA联赛之江苏
日期:2017-02-27 18:11:0715-16赛季CBA联赛之上海
日期:2018-08-15 09:48:5415-16赛季CBA联赛之佛山
日期:2018-07-20 17:14:2315-16赛季CBA联赛之佛山
日期:2019-09-10 18:08:4615-16赛季CBA联赛之山西
日期:2020-03-26 09:40:5115-16赛季CBA联赛之佛山
日期:2020-05-08 09:03:54
21 [报告]
发表于 2016-03-25 16:10 |只看该作者
awk '{for(i=1;i<=NF;i++){a[$i]++}}END{for(i in a){print i,"=",a[i]}}' file

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
22 [报告]
发表于 2016-03-25 17:43 |只看该作者
回复 18# 寂寞卜孤单


    哈哈,三年前的帖子都翻出来了。18楼的看是否合乎你的要求,是只要过滤出有分隔的行?还是全部?如果要全部的话,就不用grep过滤就可以了。

论坛徽章:
1
15-16赛季CBA联赛之山东
日期:2016-03-02 14:33:02
23 [报告]
发表于 2016-03-28 08:10 |只看该作者
本帖最后由 寂寞卜孤单 于 2016-03-28 08:10 编辑

回复 22# seesea2517


    不是太合适,我是希望统计出 一篇文章中所有字符(不论汉字还是符号,每个出现的频率)
比如:“你好帅!” 你 1 好 1 帅 1 ! 1

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
24 [报告]
发表于 2016-03-28 17:08 |只看该作者
寂寞卜孤单 发表于 2016-03-28 08:10
回复 22# seesea2517


和五楼一样的操作,只不过把原来的空格变成换行改为一个字符换一行:
  1. [seesea2517@CU]# cat a.txt
  2. 你好帅!abcdefg        asdkfj  
  3. [seesea2517@CU]#  cat a.txt | sed -r 's/./&\n/g' | sort | uniq -c
  4.       1
  5.      10  
  6.       1 !
  7.       2 a
  8.       1 b
  9.       1 c
  10.       2 d
  11.       1 e
  12.       2 f
  13.       1 g
  14.       1 j
  15.       1 k
  16.       1 s
  17.       1 你
  18.       1 好
  19.       1 帅
复制代码

论坛徽章:
6
程序设计版块每日发帖之星
日期:2016-04-05 06:20:00每日论坛发贴之星
日期:2016-04-05 06:20:00IT运维版块每日发帖之星
日期:2016-04-12 06:20:00IT运维版块每日发帖之星
日期:2016-04-14 06:20:00IT运维版块每日发帖之星
日期:2016-04-26 06:20:00IT运维版块每日发帖之星
日期:2016-04-27 06:20:00
25 [报告]
发表于 2016-04-01 03:22 |只看该作者
回复 3# 关阴月飞


    如果这么写的话,会有个问题就是,如果存在两行则发生分别统计了。:(

论坛徽章:
6
程序设计版块每日发帖之星
日期:2016-04-05 06:20:00每日论坛发贴之星
日期:2016-04-05 06:20:00IT运维版块每日发帖之星
日期:2016-04-12 06:20:00IT运维版块每日发帖之星
日期:2016-04-14 06:20:00IT运维版块每日发帖之星
日期:2016-04-26 06:20:00IT运维版块每日发帖之星
日期:2016-04-27 06:20:00
26 [报告]
发表于 2016-04-01 03:35 |只看该作者
回复 19# sunzhiguolu


   
为什么这么简单 我写的好复杂啊

cat data7 | awk '{for(;i++<=NFfor(;j++<=length()a[substr($i,j,1)]++}END{for(key in a)print key"="a[key]}'
=1
a=1
d=2
f=2
s=2
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP