【发布时间】:2017-01-16 10:01:30
【问题描述】:
我有一个大文件,我需要从中提取特定值。我正在寻找带有“Brontes”字样的字符串以及服务启动的时间。
2016-09-05 11:23:08,022 ERROR [xxx.xxx.xx] (MSC service thread 1-6) XXXX015875: XXXX AS 7.1.1.Final "Brontes" started (with errors) in 275637ms - Started 1221 of 1307 services (3 services failed or missing dependencies, 71 services are passive or on-demand)
我试图这样打印:
awk '/Brontes/{print $18}' file
结果正确:275637ms
但是当字符串看起来略有不同(列数改变)时,结果将不一样。
如何实现相同的结果,但不依赖于列数量?
【问题讨论】:
-
为此,我们需要您提供minimal reproducible example。仅一个示例不足以了解此日志的写入方式
-
如果您的号码总是以
ms结尾,您可以使用它...grep -oP '\d+ms' file -
是的,它总是以 ms 结尾,但是这个 grep 返回所有带有 ms 的值,我只需要其中包含“Brontes”字样的字符串。