Да, можно, например. re -форматирование времени с помощьюgawk
(GNUawk
)следующим образом:
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
Вероятно, dbus
— ваш лучший вариант. По крайней мере, Gnome и KDE поддерживают это. Использование метода ShowItems:
dbus-send --session --dest=org.freedesktop.FileManager1 --type=method_call /org/freedesktop/FileManager1 org.freedesktop.FileManager1.ShowItems array:string:"file:///path/to/file" string:""