当前位置: 技术问答>linux和unix
Linux ,Unix 下如何去筛选Log信息
来源: 互联网 发布时间:2016-09-30
本文导语: 本帖最后由 s8232642 于 2010-09-23 11:32:07 编辑 之前用RedHat Linux,比如有个很大的log文件,我要筛选出该log下"Hello,Baby111"之后的一些内容,我会用 grep -A500 'Hello,Baby111' log > out 即将log文件中'Hello,Baby111'之后的500行导到...
grep -A500 'Hello,Baby111' log > out
即将log文件中'Hello,Baby111'之后的500行导到out文件中(前提是log中只有一句 'Hello,Baby111'),这样很方便我查看log信息
而我现在用的HP Unix,grep没有 -A 这个参数,我就不知道有没有类似的方法去筛选我想要的log信息了。
我想达到的目的是,我有某个信息,然后我想在很大的一个Log中去查找的该信息附近的一些信息。
所以请问在HP Unix下一般大家是如何去筛选Log信息的?谢谢~~~
另外,有人能告诉我 sed,awk 是干嘛的吗?是不是和 grep 差不多的用法。非常感谢
|
多分两步,或者自己组合为一个shell脚本
sed -n '/Hello,Baby111/=' log # 获取模式的行号
假定上面的命令获取的行号是100,自行计算100+500=600
sed -n '100,600p' log # 显示行号之间的内容
sed -n '/Hello,Baby111/=' log # 获取模式的行号
假定上面的命令获取的行号是100,自行计算100+500=600
sed -n '100,600p' log # 显示行号之间的内容
|
1.
sed -n '/Hello,Baby111/,+500p' log > out
2.
或者你看看grep有没有-C选项 这个是匹配的前后各显示N行 然后用tail取后500行
grep -C500 'Hello,Baby111' log |tail -n500 > out
sed -n '/Hello,Baby111/,+500p' log > out
2.
或者你看看grep有没有-C选项 这个是匹配的前后各显示N行 然后用tail取后500行
grep -C500 'Hello,Baby111' log |tail -n500 > out
|
sed 和awk是流编辑器,是处理文本的强大工具,与正则表达式一起使用,潜力无穷
http://www.myfaq.com.cn/2005September/2005-09-13/204634.html
http://www.myfaq.com.cn/2005September/2005-09-13/204634.html
|
1.
sed -n '/Hello,Baby111/,+500p' log > out
2.
或者你看看grep有没有-C选项 这个是匹配的前后各显示N行 然后用tail取后500行
grep -C500 'Hello,Baby111' log |tail -n500 > out
sed -n '/Hello,Baby111/,+500p' log > out
2.
或者你看看grep有没有-C选项 这个是匹配的前后各显示N行 然后用tail取后500行
grep -C500 'Hello,Baby111' log |tail -n500 > out
|
现在已经发现很多Unix下的命令没有Linux下的好用了
|
是啊,开源的结果吧..
|
一般来说,sed加上awk,文本处理应该差不多了。呵呵
|
学习了,
|
拜膜 FF