汎用的な何かを目指していたが途中で飽きたので中途半端なものになった。
#!/bin/bash uptimedate(){ UPTIME=$1 STARTTIME=$2 date +"%Y-%m-%d %H:%M:%S" --date=@$(($UPTIME+$STARTTIME)) } STARTTIME=`grep btime /proc/stat|cut -b7-` dmesg | while read line; do line=${line#*[} uptime_b=${line%%]*} line=${line#*] } uptime_s=${uptime_b%%.*} uptime_u=${uptime_b#*.} uptime_d=`uptimedate $uptime_s $STARTTIME` echo $uptime_d.$uptime_u $line done
# dmesg [ 0.000000] Linux version 4.9.0-4-amd64 ... 後略 # ./mydmesg 2018-01-19 13:29:01.000000 Linux version 4.9.0-4-amd64 ... 後略
uptime部分をばらして日付に直して表示する
マイクロ秒も一応表示しているが、あてにはならない