当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : awk:可否以字节为单位,对一个文件进行遍历
帖子发表于 : 2017-04-12 11:48 

注册: 2016-07-08 17:43
帖子: 86
系统: debian8
送出感谢: 11
接收感谢: 0 次
获得一个文件的空格数量

awk '{num=num+gsub(/ /,"")}END{printf num}' filename

也以行为单位,按照字节进行遍历

export LC_ALL=C
awk 'BEGIN{FS=""}{for(i=1;i<=NF;++i)if($i~/[\x20]/){num++}}END{printf num}' test

这种方法,无法数出有多少个 0a .
(wc -l test ;awk '{print NR}' test)都可以,但我讨论的是:可否以字节为单位,对一个文件进行遍历。

因为
export LC_ALL=C
awk 'BEGIN{FS=""}{for(i=1;i<=NF;++i)if($i~/[\x20]/){num++}}END{printf num}' test
是按照字节,以行为单位,进行16进制的遍历。

可否按照字节,以整篇文章单位,进行16进制的遍历。
注意:你可能会说,一行一行跑完不就是整篇遍历了。
我可否将整篇文章连接成一个操作对象?
不可以合并行,合并行后,换行符号删除了。

或者说:我想用awk ,通过匹配 0a的方式来获得一篇文章有多少行?
export LC_ALL=C
awk 'BEGIN{FS=""}{for(i=1;i<=NF;++i)if($i~/[\x0a]/){num++}}END{printf num}' test
这个方法不行,因为awk一行一行操作,每行最后不是 0a .

别提 (wc -l test ;awk '{print NR}' test),我知道。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: awk:可否以字节为单位,对一个文件进行遍历
帖子发表于 : 2017-04-13 11:22 
头像

注册: 2009-04-11 23:46
帖子: 4128
系统: Arch Linux
送出感谢: 11
接收感谢: 124
为什么这么执着呢?你的原始需求是什么?


_________________
我的博客 https://blog.lilydjwg.me/
提问的智慧
Arch Linux 中文论坛

我的vimrc: https://git.io/vimrc


页首
 用户资料  
 
3 楼 
 文章标题 : Re: awk:可否以字节为单位,对一个文件进行遍历
帖子发表于 : 2017-04-14 23:05 
头像

注册: 2009-03-28 16:10
帖子: 1849
系统: Arch debian win7
送出感谢: 10
接收感谢: 70
你遇到的问题是什么?
awk只是用来解决问题的一种手段,不用执着在上面。
不管白猫黑猫抓到老鼠就是好猫,要是狗能抓老鼠,用一用难道能掉块肉吗?
不能要求别人把时间花在凭空制造出的问题上。
如果只是纯技术讨论,最好在开头说明。愿者上钩,才不会浪费真正想解决问题的人的时间。


_________________
为什么我的问题总是没有人回答?

金钱、责任与荣誉:OpenSSL主席谈心脏出血
拥有丰富API接口和广泛程序支持的dropbox云同步,点此注册,开始就比别人多500兆,我的空间也会增加。谢啦
==========我的作品==========
我做的一个面向开发者的gnome-shell扩展,有js基础又想自己调整gnome-shell功能的可以尝试一下
gnome-shell扩展开发入门,gnome-shell扩展系统扫盲帖


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 3 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译