免费注册 查看新帖 |

Chinaunix

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

虚心求教(如何逐个读取字符) [复制链接]

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
41 [报告]
发表于 2006-08-11 16:27 |只看该作者
我的理解相反,是取决于RS是不是最后一个字串。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
42 [报告]
发表于 2006-08-11 16:37 |只看该作者
有趣呀~
/home/lee/test#echo -n 'hello  '|awk 'BEGIN{RS="hello"}END{print NR}' #空格在后
2
/home/lee/test#echo -n ' hello'|awk 'BEGIN{RS="hello"}END{print NR}' #空格在前
1
/home/lee/test#echo -n 'hello'|awk 'BEGIN{RS="hello"}END{print NR}'#没空格
1
/home/lee/test#
跟awk对FS的处理有关吧~

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
43 [报告]
发表于 2006-08-11 16:40 |只看该作者
原来不知道gawk3.1.3有这个问题。^_^
用awk的解法还有一个问题,就是匹配的串在文件的末尾,且后面没有任何其它字符时会少一个计数。
一定要用的话,可以这样:
{ cat file; echo "  ";}|awk -v RS="hello" 'END{print NR-1}'
人为在awk的输入流后面加上两个空格,就可以避免这个问题,gawk 3.1.3也没问题。
by the way, 还是用perl简洁:
perl -0ne 'print s/hello//g'

论坛徽章:
0
44 [报告]
发表于 2007-02-27 00:16 |只看该作者
原帖由 寂寞烈火 于 2006-8-11 16:37 发表
有趣呀~
/home/lee/test#echo -n 'hello  '|awk 'BEGIN{RS="hello"}END{print NR}' #空格在后
2
/home/lee/test#echo -n ' hello'|awk 'BEGIN{RS="hello"}END{print NR}' #空格在前
1
/ ...


/home/lee/test#echo -n 'hello  '|awk 'BEGIN{RS="hello"}END{print NR}' #空格在后
2
应该是在hello之前有一个null字段,在hello后面也有个字段——空格;

/home/lee/test#echo -n ' hello'|awk 'BEGIN{RS="hello"}END{print NR}' #空格在前
1
应该是只有一个字段——空格,在hello之前

/home/lee/test#echo -n 'hello'|awk 'BEGIN{RS="hello"}END{print NR}'#没空格
1
只有一个字段null,在hello之前

真滴好玩

论坛徽章:
0
45 [报告]
发表于 2007-02-28 10:31 |只看该作者

回复 3楼 bwater 的帖子

我觉得bwater的答案不对,如果有任意一行中多于一个hello,结果就不正确
我是这样的
BEGIN {
   FS="hello"
}
/hello/ {
   n+=(NF-1)
}
END {
   print "total: ",n
}

测试通过

论坛徽章:
0
46 [报告]
发表于 2007-03-04 16:33 |只看该作者
sed -n '/hello/{s/hello/hello\
/g;s/\n$//;p;}' yourfile | wc -l
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP