Date

dmesg:自定義時間格式

  • September 4, 2019

dmesg可以選擇-T列印人類可讀的時間戳,新版本有選項--time-format,可以更改時間格式,例如:

--time-format iso

不幸的是,iso時間格式也不太可讀。我可以使用標準date語法定義自己的時間格式嗎?IE:

date +%F-%T

gawk是的,您可以,例如通過使用(GNU )重新格式化時間,awk如下所示:

dmesg --time-format iso | gawk '{ printf (strftime("+%F-%T",mktime(gensub("[-+T:,]"," ","g",$1)))) ; $1 = ""; print $0}'

dmesg在這裡列印 iso 日期,如下所示:

2019-09-02T06:10:30,708864+02:00 this is an important message

我們去除第一個特殊字元字元串,然後使用( )中的mktime函式將字元串解析為日期,然後格式化 - 使用您喜歡的參數。g``awk``strftime

這給出了類似的東西

+2019-09-02-06:10:30 this is an important message

小筆記:

  • 我們在這裡忽略時區,假設這很明顯,因為我們在本地執行命令。
  • 請注意,dmesg由於時間戳的儲存方式,如果您掛起然後喚醒電腦,則給出的時間可能不准確(實際上,有時會偏離),請參閱dmesg(1)
man 1 dmesg

你不能,但你可以解析dmesg-output:

dmesg --time-format iso \
| while read datestring rest; do \
 printf '%s\n' "$(date -d "$datestring" +%F-%T) $rest"; done

引用自:https://unix.stackexchange.com/questions/538384