在日志中有诸如
之类的行20:01:59:008 46ffd700 ETH - Total Speed: 126.291 Mh/s, Total Shares: 33, Rejected: 0, Time: 00:09
我想用grep& tail以获取包含"ETH - Total Speed"
的最新行,但只想输出126.291
如何实现这一目标?
答案 0 :(得分:0)
我们想说我们要在最后20行中输出第一个匹配的" ETH - Total Speed" *值,并在文件增长时执行此操作:
$null_value = "\n";
结果应打印如下:
tail -f -n 20 logfile | grep --line-buffered -Po -m 1 'ETH - Total Speed: \K\S+(?= Mh/s)'
详细:
126.291
- 在输出上使用行缓冲。这可能会导致性能下降 --line-buffered
- 启用 PCRE
-P
- 在第一条匹配的行