cat | wc -c为什么不能输入一行,然后就显示出wc的统计结果?
- jiandan23
- 帖子: 94
- 注册时间: 2010-12-17 22:31
- 系统: Mint 19.2
cat | wc -c为什么不能输入一行,然后就显示出wc的统计结果?
RT,研究很久了,都没找到原因
-
- 帖子: 893
- 注册时间: 2011-02-14 17:46
Re: cat | wc -c为什么不能输入一行,然后就显示出wc的统计结果?
可以的
cat | wc -c
12345^D^D
第一个^D刷新缓存把数据送进去,第二个^D表示cat的输入结束
但是结果会在同一行,看上去就是123455
cat | wc -c
12345^D^D
第一个^D刷新缓存把数据送进去,第二个^D表示cat的输入结束
但是结果会在同一行,看上去就是123455
- jiandan23
- 帖子: 94
- 注册时间: 2010-12-17 22:31
- 系统: Mint 19.2
Re: cat | wc -c为什么不能输入一行,然后就显示出wc的统计结果?
那为什么执行cat > a.txt的时候,每输入一行,按下回车之后,该行就会被立刻写入a.txt?
rosynirvana 写了:可以的
cat | wc -c
12345^D^D
第一个^D刷新缓存把数据送进去,第二个^D表示cat的输入结束
但是结果会在同一行,看上去就是123455
-
- 帖子: 893
- 注册时间: 2011-02-14 17:46
Re: cat | wc -c为什么不能输入一行,然后就显示出wc的统计结果?
行缓冲,用^D刷新缓冲区也是一个效果jiandan23 写了:那为什么执行cat > a.txt的时候,每输入一行,按下回车之后,该行就会被立刻写入a.txt?rosynirvana 写了:可以的
cat | wc -c
12345^D^D
第一个^D刷新缓存把数据送进去,第二个^D表示cat的输入结束
但是结果会在同一行,看上去就是123455
-
- 帖子: 1
- 注册时间: 2015-03-25 21:54
- 系统: fedora
Re: cat | wc -c为什么不能输入一行,然后就显示出wc的统计结果?
$ 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 当成文件名来读取。 不知谁能分享其它更好的方法 ?
apple is a
10
hello world
11
$
我能想到的是用 while read, 不是很熟悉 pipeline, 尝试用 xargs -n1, stdbuf -o 0 都失败在 wc -l 把 input 当成文件名来读取。 不知谁能分享其它更好的方法 ?

- zhw2101024
- 帖子: 1849
- 注册时间: 2009-03-28 16:10
- 系统: Arch debian win7
- 联系:
Re: cat | wc -c为什么不能输入一行,然后就显示出wc的统计结果?
为什么我的问题总是没有人回答?
金钱、责任与荣誉:OpenSSL主席谈心脏出血
拥有丰富API接口和广泛程序支持的dropbox云同步,点此注册,开始就比别人多500兆,我的空间也会增加。谢啦
==========我的作品==========
我做的一个面向开发者的gnome-shell扩展,有js基础又想自己调整gnome-shell功能的可以尝试一下
gnome-shell扩展开发入门,gnome-shell扩展系统扫盲帖
金钱、责任与荣誉:OpenSSL主席谈心脏出血
拥有丰富API接口和广泛程序支持的dropbox云同步,点此注册,开始就比别人多500兆,我的空间也会增加。谢啦
==========我的作品==========
我做的一个面向开发者的gnome-shell扩展,有js基础又想自己调整gnome-shell功能的可以尝试一下
gnome-shell扩展开发入门,gnome-shell扩展系统扫盲帖