免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2204 | 回复: 7
打印 上一主题 下一主题

[文本处理] 单行命令之乐 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-09-05 15:20 |只看该作者 |倒序浏览
本帖最后由 smallpboy 于 2012-09-05 15:21 编辑

看linux shell脚本攻略,作者有一范例:计算包含重复字符的字符串,打印每个字母在字符串中出现的次数。
输入:aaahhdddae
输出:4a3d1e2h

期待大家的解法。

论坛徽章:
0
2 [报告]
发表于 2012-09-05 16:23 |只看该作者
  1. echo 'aaahhdddae' |sed 's/.\B/&\n/g' |awk '{a[$0]++}END{for(i=1;i<=asorti(a,b);i++)printf a[b[i]]""b[i];print ""}'
  2. 4a3d1e2h
复制代码

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
3 [报告]
发表于 2012-09-05 16:28 |只看该作者
  1. echo "aaahhdddae"|fold -1|sort|uniq -c|xargs|tr -d " "
复制代码

论坛徽章:
0
4 [报告]
发表于 2012-09-05 17:26 |只看该作者
回复 2# kk5234
没看明白,呵呵,能给个QQ单独问下吗?

   

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
5 [报告]
发表于 2012-09-06 07:39 |只看该作者
回复 4# zyj19871215


    哪儿不明白直接问吧

论坛徽章:
0
6 [报告]
发表于 2012-09-06 10:15 |只看该作者
回复 5# Shell_HAT

/.\B/&\n/g 这里不明白,他将.\B替换成&\n 这两个分别代表什么啊?小弟新手问一下小白问题,见笑。

awk '{a[$0]++}END{for(i=1;i<=asorti(a,b);i++)printf a[b]""b;print ""}'   awk 的一些简单的我会,这个对我有难度了,能不能给详细说下,我理解后可能会举一反三,理解不少问题。关于awk 中的END NR这块东西不是很熟悉,有可以学习这块的资料和一些事例吗?感谢大神啊,以前你还帮我解决过好多问题,我的shell水平比以前懂了一点点,谢谢
   

论坛徽章:
0
7 [报告]
发表于 2012-09-06 11:51 |只看该作者
本帖最后由 ljwd1000 于 2012-09-06 11:54 编辑

回复 6# zyj19871215

. 任意一个字符
\B 单词内部匹配
&代表sed匹配内容
\n代表换行


   

论坛徽章:
0
8 [报告]
发表于 2012-09-06 19:39 |只看该作者
echo aaahhdddae | sed 's/./&\n/g' | sort | uniq -c | sed '1d' | tr -d ' \n'
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP