Shell脚本开始从特定点到文件末尾搜索模式

时间:2013-07-03 02:28:59

标签: shell

我只是想知道你是否可以在这里取悦。

我有以下日志文​​件:

 qi3adm       20130701095302    : QI3/SYS/exe/uc/sunx86_64/tp import all
  QI3 u6 -Dsourcesystems=HRI,MP1,BFI,EBI,EBJ,EEI,EFI,EGI,EHI,EIA,EIC,EII,EIK,EIS

 qi3adm       20130701144746    : QI3/SYS/exe/uc/sunx86_64/tp import all
  qi3 u6 -Dsourcesystems=HRI,MP1,BFI,EBI,EBJ,EEI,EFI,EGI,EHI,EIA,EIC,EII,EIK,EIS

 qi3adm       20130701145155    : QI3/SYS/exe/uc/sunx86_64/tp import all
  QI3 u6 -Dsourcesystems=HRI,MP1,BFI,EBI,EBJ,EEI,EFI,EGI,EHI,EIA,EIC,EII,EIK,EIS

 qi3adm       20130701164041    : QI3/SYS/exe/uc/sunx86_64/tp import all
  QI3 u6 -Dsourcesystems=HRI,MP1,BFI,EBI,EBJ,EEI,EFI,EGI,EHI,EIA,EIC,EII,EIK,EIS

 qi3adm       20130701205821    : QI3/SYS/exe/uc/sunx86_64/tp import all
 QI3 u6 -Dsourcesystems=HRI,MP1,BFI,EBI,EBJ,EEI,EFI,EGI,EHI,EIA,EIC,EII,EIK,EIS

 qi3adm       20130702034725    : QI3/SYS/exe/uc/sunx86_64/tp import all
  QI3 u6 -Dsourcesystems=HRI,MP1,BFI,EBI,EBJ,EEI,EFI,EGI,EHI,EIA,EIC,EII,EIK,EIS

我的要求是我需要在日志文件中的第三个条目之后开始搜索,即从

开始
 qi3adm       20130701145155    : QI3/SYS/exe/uc/sunx86_64/tp import all
  QI3 u6 -Dsourcesystems=HRI,MP1,BFI,EBI,EBJ,EEI,EFI,EGI,EHI,EIA,EIC,EII,EIK,EIS

此日志文件在上述记录之前基本上有数千条记录。我可以使用grep取出上面的记录。在此之后,我需要从下一个记录开始搜索,即从

开始
 qi3adm       20130701164041    : QI3/SYS/exe/uc/sunx86_64/tp import all
  QI3 u6 -Dsourcesystems=HRI,MP1,BFI,EBI,EBJ,EEI,EFI,EGI,EHI,EIA,EIC,EII,EIK,EIS

并继续搜索直到文件结尾。 (并且需要显示命中)。我正在网上进行一些搜索,我尝试使用以下内容:

sed -e '/$TIMESTAMP/,$p' LOGFILE

[$ TIMESTAMP持有2013]。但是,上面没有给出正确的输出。我遇到的主要问题是搜索只需要在记录3之后而不是从日志文件的开头开始。

你能帮忙吗?非常感谢你的帮助。

最诚挚的问候, 斯

1 个答案:

答案 0 :(得分:0)

使用awk

awk '/qi3adm       20130701164041/,0' logfile

使用sed

sed '/qi3adm       20130701164041/,$!d' logfile 

基本上,你在起始范围内传递一个表达式,它将从那里开始直到文件结束。