我有这样的日志文件。我想使用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 }
答案 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