当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 6 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : cat | wc -c为什么不能输入一行,然后就显示出wc的统计结果?
帖子发表于 : 2015-03-06 11:27 

注册: 2010-12-17 22:31
帖子: 38
送出感谢: 2
接收感谢: 0 次
RT,研究很久了,都没找到原因


页首
 用户资料  
 
2 楼 
 文章标题 : Re: cat | wc -c为什么不能输入一行,然后就显示出wc的统计结果?
帖子发表于 : 2015-03-06 11:51 

注册: 2011-02-14 17:46
帖子: 907
送出感谢: 3
接收感谢: 124
可以的
cat | wc -c
12345^D^D
第一个^D刷新缓存把数据送进去,第二个^D表示cat的输入结束

但是结果会在同一行,看上去就是123455


页首
 用户资料  
 
3 楼 
 文章标题 : Re: cat | wc -c为什么不能输入一行,然后就显示出wc的统计结果?
帖子发表于 : 2015-03-06 14:47 

注册: 2010-12-17 22:31
帖子: 38
送出感谢: 2
接收感谢: 0 次
那为什么执行cat > a.txt的时候,每输入一行,按下回车之后,该行就会被立刻写入a.txt?
rosynirvana 写道:
可以的
cat | wc -c
12345^D^D
第一个^D刷新缓存把数据送进去,第二个^D表示cat的输入结束

但是结果会在同一行,看上去就是123455


页首
 用户资料  
 
4 楼 
 文章标题 : Re: cat | wc -c为什么不能输入一行,然后就显示出wc的统计结果?
帖子发表于 : 2015-03-06 15:05 

注册: 2011-02-14 17:46
帖子: 907
送出感谢: 3
接收感谢: 124
jiandan23 写道:
那为什么执行cat > a.txt的时候,每输入一行,按下回车之后,该行就会被立刻写入a.txt?
rosynirvana 写道:
可以的
cat | wc -c
12345^D^D
第一个^D刷新缓存把数据送进去,第二个^D表示cat的输入结束

但是结果会在同一行,看上去就是123455

行缓冲,用^D刷新缓冲区也是一个效果


页首
 用户资料  
 
5 楼 
 文章标题 : Re: cat | wc -c为什么不能输入一行,然后就显示出wc的统计结果?
帖子发表于 : 2015-03-25 22:53 

注册: 2015-03-25 21:54
帖子: 1
系统: fedora
送出感谢: 0 次
接收感谢: 0 次
$ cat | while read -r line; do echo -n "$line"| wc -c; done
apple is a
10
hello world
11
$

我能想到的是用 while read, 不是很熟悉 pipeline, 尝试用 xargs -n1, stdbuf -o 0 都失败在 wc -l 把 input 当成文件名来读取。 不知谁能分享其它更好的方法 ? :oops:


页首
 用户资料  
 
6 楼 
 文章标题 : Re: cat | wc -c为什么不能输入一行,然后就显示出wc的统计结果?
帖子发表于 : 2015-03-26 11:59 
头像

注册: 2009-03-28 16:10
帖子: 1849
系统: Arch debian win7
送出感谢: 10
接收感谢: 70
看这里
代码:
wc -l <(ls)

<()这个语法相当于把命令的输出重定向到
代码:
/dev/fd/63
这个文件描述符,然后把文件1描述符路径作为一个参数传给前边的wc -l。


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

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


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

当前时区为 UTC + 8 小时


在线用户

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


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

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

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