使用grep查找相应的错误订单项

时间:2018-09-23 15:20:31

标签: awk grep

我有这样的日志文件。我想使用grep命令查找对要获取的错误消息的引用:“ / home / ubuntu / CT / data / xml1 / NCT0002xxxx / NCT00027222.xml”。使用grep命令可以吗?

第一行(/home/ubuntu/CT/data/xml1/NCT0002xxxx/NCT00027222.xml)从日志文件中是随机的,我想得到的实际上是第一行!

> /home/ubuntu/CT/data/xml1/NCT0002xxxx/NCT00027222.xml
> [C]:https://geocoder.com/geocode.json?t=United States
> [C]:https://geocoder.com/geocode.json?t=United States
> [C]:https://geocoder.com/geocode.json?t=United States
> [C]:https://geocoder.com/geocode.json?t=United States { Error: connect
> ETIMEDOUT 54.210.239.167:443
>     at Object._errnoException (util.js:992:11)
>     at _exceptionWithHostPort (util.js:1014:20)
>     at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1186:14)   code: 'ETIMEDOUT',   errno: 'ETIMEDOUT',   syscall: 'connect',  
> address: '54.210.239.167',   port: 443 }

2 个答案:

答案 0 :(得分:0)

我假设>字符不是文件的一部分。然后呢:

$ grep "^/" file
/home/ubuntu/CT/data/xml1/NCT0002xxxx/NCT00027222.xml

如果它是文件的一部分,则例如:

$ grep -Po "(?<=^> )/.*" file
/home/ubuntu/CT/data/xml1/NCT0002xxxx/NCT00027222.xml

答案 1 :(得分:0)

您在寻找这个吗?

grep -B 10 ETIMEDOUT logfile.log | grep xml

我理解你这样的要求。如果文件出错,则必须找到所述文件名。出于同样的原因,下面的方法应该起作用。

-B brings the said number of lines above the matched pattern/string, it's 10 here