+ -
当前位置:首页 → 问答吧 → 取文件某部分内容

取文件某部分内容

时间:2011-02-11

来源:互联网

这个 该如何求
一个文件我需要
把第一次出现行内容的# Time: 100901
第二次出现行内容的# Time: 100902
之间的内容给取出来

用grep -n 分几步作是可以的
现在思考能否用一个命令做完. 这个操作每天要执行 .总体命令越少越好
sed -n '/# Time: 100901/,$p' file  (是把第一次出现# Time: 100901后的内容给显示出来
现在要求从# Time: 100901开始到
# Time: 100902结束 ,# Time: 100902后面的不显示
)
(用一个命令该如何做)

作者: liyihongcug   发布时间: 2011-02-11

本帖最后由 yinyuemi 于 2011-02-11 16:28 编辑

awk  '/# Time: 100901/{p=1}/# Time: 100902/{print;p=0;exit}p' file

作者: yinyuemi   发布时间: 2011-02-11

sed -n '/# Time: 100901/ba;d;:a;n;/# Time: 100902/d;p;ba' urfile

作者: cjaizss   发布时间: 2011-02-11

太感谢楼上  有时间决定研究下 sed awk
awk  '/LATEST DETECTED DEADLOCK/{p=1}/FILE I\/O/{print;p=0;exit}p' innodb.log

sed -n '/LATEST DETECTED DEADLOCK/ba;d;:a;n;/FILE I\/O/d;p;ba' innodb.log
但是这sed不含LATEST DETECTED DEADLOCK  和含FILE I/O的行.
是否有方法用sed把含LATEST DETECTED DEADLOCK  和含FILE I/O的行给显示出来 因为需要标志的

作者: liyihongcug   发布时间: 2011-02-11

lz的意思是这个么?

sed  -n '/LATEST DETECTED DEADLOCK/,/FILE I/O/p' file

作者: yinyuemi   发布时间: 2011-02-11

sed  -n '/LATEST DETECTED DEADLOCK/,/FILE I\/O/p' innodb.log
感谢楼上 多了一种方法

作者: liyihongcug   发布时间: 2011-02-11



QUOTE:
这个 该如何求
一个文件我需要
把第一次出现行内容的# Time: 100901
第二次出现行内容的# Time: 100902
...
liyihongcug 发表于 2011-02-11 16:19




这样可以吗?....
sed -n '/100901/,/100902/p' urfile

作者: jason680   发布时间: 2011-02-11

楼主日志格式能说具体点么?是日志文件里面
# Time: 100901
。。。
。。。
。。。
# Time: 100902
只出现一回,还是多次出现.
# Time: 100901
。。。
。。。
。。。
# Time: 100902
。。。
。。。
。。。
# Time: 100903
。。。
。。。
。。。
# Time: 100904

作者: qq5910225   发布时间: 2011-02-11

热门下载

更多