首页 > 解决方案 > 将时间戳附加到 grep 输出

问题描述

我正在尝试将时间戳附加到 ping 输出(仅 pong 时间),而且我对 bash 脚本非常陌生,因此非常感谢您的解释(不仅是解决方案)

我试过了

sed  "s/$/\ `date +%T`/" instead of the loop

我也知道,"ping -D"但出于学习目的(添加时间戳),我宁愿通过 sed 或简单循环使用附加解决方案;哪个解决方案更快(内存/CPU)

ping 8.8.8.8 | grep -Po '(?<=time=)\S+' |  while read -r line; do echo "$line $(date +%T)"; done 

我期待着

51.7 12:18:06

标签: bash

解决方案


#!/bin/sh

ping 8.8.8.8 | stdbuf -oL grep -Po '(?<=time=)\S+' |
while IFS= read -r line
do
    echo "$line $(date +%T)"
done

推荐阅读