linux如何将内容写入文件(覆盖之前的内容)?如何将同一个管道传来的内容给两个awk命令使用?

我有一个log文件,它是自动增长的,我需要每次将它自动增长的部分进行处理.1.查看增长部分是否有关键字"error",如果有,记下error的行号2.用awk取出第一步e... 我有一个log文件,它是自动增长的,我需要每次将它自动增长的部分进行处理.
1. 查看增长部分是否有关键字"error",如果有,记下error的行号
2. 用awk取出第一步error行号的前3行和后3行.

所以我写了如下代码:
tail -f mylog.log > temp.log | awk -f getRowNum.awk temp.log | awk -f getContent.awk temp,log

但是我发现tail -f mylog.log > temp.log 是每次都把mylog.log中新增加的内容 追加到了temp,log 的最后,这样我就无法只对最新的内容进行处理了.
请各位大虾不吝指点.
lzbltx 你好:
我试过你说的把">"写成">!" 但是不起作用,thanks!

wfing123你好:
你的意思是将命令写成:
rm -rf temp.log;tail -f mylog.log > temp.log | awk -f getRowNum.awk temp.log | awk -f getContent.awk temp,log
吗?(我刚接触linux 很多都不懂)
另外我觉得很奇怪的是为什么tail -f mylog.log > temp.log 会一直在temp.log的末尾追加内容(我没有将">"写错成">>")?
展开
 我来答
百度网友ccebd74
2010-08-31 · TA获得超过240个赞
知道小有建树答主
回答量:131
采纳率:0%
帮助的人:166万
展开全部
tail -f mylog.log > temp.log这一句是把temp.log重定向成新增的内容啊。
你估计写成了tail -f mylog.log >> temp.log这是追加。

万一你觉得你的temp.log有问题,那你在这条命令之前写一个rm -rf temp.log
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lzbltx
2010-08-31 · 超过23用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:38.3万
展开全部
没有LINUX环境验证,只能说你试一试,把“>”改为“>!”试试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jhkwei
2010-08-31 · TA获得超过560个赞
知道小有建树答主
回答量:1324
采纳率:0%
帮助的人:858万
展开全部
cat mylog.log |tee temp01.log temp02.log | awk -f getRowNum.awk temp01.log | awk -f getContent.awk temp02.log
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式