免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6294 | 回复: 8
打印 上一主题 下一主题

请教tail -f的输出重定向问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-19 14:45 |只看该作者 |倒序浏览
比如我使用tail -f a.txt >> b.txt &,则b.txt追加了a.txt最后十行的内容,以后随着a.txt的增长也会不断追加;
但是我使用tail -f a.txt | grep "^1"  >> b.txt &,则b.txt没有追加任何内容(a.txt肯定存在1开头的行),后面在a.txt后追加1开头的行也没有反应。
请问这是为何?如果我想达到后面的效果应该怎么写?谢谢。

论坛徽章:
0
2 [报告]
发表于 2006-10-19 16:02 |只看该作者
tail -10 aa.txt|grep "^1" >>a &
应该就没问题

论坛徽章:
0
3 [报告]
发表于 2006-10-19 16:14 |只看该作者
2楼你的方法不适合楼主说的情况哦!
楼主是说将这个放到后台一直跑,当你改变a.txt的时候,b.txt也会随着条件而改变


我一直在实验,但是总觉得一个问题我想不明白。
为什么加管道以后就不行了呢~~~~

有达人帮忙不?

[ 本帖最后由 cyaln 于 2006-10-19 16:17 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2006-10-19 16:15 |只看该作者
  1. tail -f a.txt | grep --line-buffered "^1" >>b.txt &
复制代码

论坛徽章:
0
5 [报告]
发表于 2006-10-19 16:21 |只看该作者
可是实现一次~~~~好象你再去修改a.txt的时候不会向b.txt里面继续写了

怎么办?

待解决~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

不过已经够强了~~~~~起码实现了第一次写的过程~~~~~~thx

[ 本帖最后由 cyaln 于 2006-10-19 16:29 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2006-10-20 10:25 |只看该作者
我不想这个帖子沉下去~~自己来顶一下~~~~~

不是打广告,LZ跟我也没什么关系~~~~~~~~

论坛徽章:
0
7 [报告]
发表于 2006-10-20 10:45 |只看该作者
当你是追加a.txt时,命令运行是正常的。
当你是覆写a.txt时,不太正常,tail说不准什么时候会读出一些东西。

论坛徽章:
0
8 [报告]
发表于 2006-10-20 11:08 |只看该作者
原帖由 seeLnd 于 2006-10-19 16:15 发表
  1. tail -f a.txt | grep --line-buffered "^1" >>b.txt &
复制代码

请问你使用的是什么shell,我在solaris8上面实验bash、ksh、csh都是报语法错误的

论坛徽章:
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
9 [报告]
发表于 2006-10-20 11:32 |只看该作者
buffer的问题,不同的程序有不同的处理,如果grep不支持--line-buffered,可以试一下awk是否有fflush函数

  1. tail -f a|awk '/^1/{print;fflush()}' >>b &
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP