免费注册 查看新帖 |

Chinaunix

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

如何统计一个file中匹配文字的个数? [复制链接]

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
21 [报告]
发表于 2007-01-26 23:37 |只看该作者
这个问题很久前的一篇精华中有过讨论:
[精华] 这个shell script 怎么写?
用gawk的话可以:
  1. awk -v RS="\\ypattern\\y" 'END{print NR-1}'
复制代码

注意:gawk3.1.3下要统计的东西若在文件尾时,由于awk会吃掉最后的一个字符,因此会少计数一次。

用perl还可以:
  1. perl -0ne 'print s/\bpattern\b//g'
复制代码

论坛徽章:
0
22 [报告]
发表于 2007-01-27 19:26 |只看该作者
  1. awk '{ count += gsub(/word/, ""); } END { print count; }' urfile
复制代码
aickgaven 该用户已被删除
23 [报告]
发表于 2007-01-28 01:07 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
24 [报告]
发表于 2007-01-28 01:58 |只看该作者
原帖由 aickgaven 于 2007-1-28 01:07 发表
  1. cat file | tr -cs a-zA-Z '\012' | grep 'abc' | wc -l
复制代码


关键起作用的是这个:wc -l

--

论坛徽章:
0
25 [报告]
发表于 2007-01-28 02:22 |只看该作者
再关键也是多此一举^_^

论坛徽章:
0
26 [报告]
发表于 2007-01-28 09:08 |只看该作者
a="abc"
sed "sa:\\
&\\
:g" | grep -c "$a"
能给注释下吧?看不懂

论坛徽章:
0
27 [报告]
发表于 2007-01-28 09:22 |只看该作者
原帖由 net_robber 于 2007-1-26 21:31 发表

  1. cat file |tr -c "ABCD" '\n'|grep -w "ABCD"|sed -n $=

复制代码


我测试过的



-c 应该取"ABCD"的补集,你这样做的意思是?

论坛徽章:
0
28 [报告]
发表于 2007-01-28 10:00 |只看该作者
# cat killftp
#!/bin/sh
a=$(ps -a |grep vsftpd* |awk '{print $1}');
kill -9 $a;
echo '已杀死'
# cat killftp | tr -c "a" '\n' | grep -w "a" | sed -n $=
4
我测试过可以的
环境RHAS4  ksh shell

论坛徽章:
0
29 [报告]
发表于 2007-01-28 10:56 |只看该作者

回复 1楼 crazy_mos 的帖子

楼上已有人说过了:

grep -o "@xx.com"  你的文件  |   wc -l

就出来了,非常简单

论坛徽章:
0
30 [报告]
发表于 2007-01-29 13:51 |只看该作者
cat file | grep abc |wc -w

[ 本帖最后由 olda 于 2007-1-29 14:18 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP