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的末尾追加内容(我没有将">"写错成">>")? 展开
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的末尾追加内容(我没有将">"写错成">>")? 展开
3个回答
展开全部
tail -f mylog.log > temp.log这一句是把temp.log重定向成新增的内容啊。
你估计写成了tail -f mylog.log >> temp.log这是追加。
万一你觉得你的temp.log有问题,那你在这条命令之前写一个rm -rf temp.log
你估计写成了tail -f mylog.log >> temp.log这是追加。
万一你觉得你的temp.log有问题,那你在这条命令之前写一个rm -rf temp.log
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有LINUX环境验证,只能说你试一试,把“>”改为“>!”试试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
cat mylog.log |tee temp01.log temp02.log | awk -f getRowNum.awk temp01.log | awk -f getContent.awk temp02.log
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询