当前位置: 技术问答>linux和unix
比较复杂的重定向操作。
来源: 互联网 发布时间:2015-05-26
本文导语: 我有一个文件a,想截取特征字b,好办:cat a | grep b > c 但是这个文件是动态变化的,比如log呢? 另外还有一个问题就是当log超过6M的时候,系统会把a文件的内容输出到a.1,然后清空a,重新更新log。 这个时候要...
我有一个文件a,想截取特征字b,好办:cat a | grep b > c
但是这个文件是动态变化的,比如log呢?
另外还有一个问题就是当log超过6M的时候,系统会把a文件的内容输出到a.1,然后清空a,重新更新log。
这个时候要是想把全过程包含b的行重定向到c文件,应该用怎么样的命令呢?
但是这个文件是动态变化的,比如log呢?
另外还有一个问题就是当log超过6M的时候,系统会把a文件的内容输出到a.1,然后清空a,重新更新log。
这个时候要是想把全过程包含b的行重定向到c文件,应该用怎么样的命令呢?
|
提供个思路:
1.首先计算文件a的行数(假如为$count),然后在1~$count范围内grep b>c,并且$count>>c;下次再计算a的行数(假如为$count2),然后在$count~$count2范围内再截取特征字,并把$count2>>c;依此类推。
2.把shell脚本文件放到crontab里.
1.首先计算文件a的行数(假如为$count),然后在1~$count范围内grep b>c,并且$count>>c;下次再计算a的行数(假如为$count2),然后在$count~$count2范围内再截取特征字,并把$count2>>c;依此类推。
2.把shell脚本文件放到crontab里.
|
1. tail -f a | grep b
2. grep b a.* > c
grep b a >> c
2. grep b a.* > c
grep b a >> c
|
可以参考一下tail的代码。