在大多数情况下,其他答案可能就足够了,但是当我在busybox系统上遇到问题时,我想我会增加2分钱。
有问题的系统不支持%N格式选项,也没有python或perl解释器。
我们(多谢戴夫!)想到了这个:
adjtimex | awk '/(time.tv_sec|time.tv_usec):/ { printf("%06d", $2) }'
它从adjtimex的输出(通常用于设置系统时钟的选项)中提取秒和微秒,并在没有新行的情况下打印它们(因此它们被粘在一起)。 请注意,微秒字段必须用零预填充,但不会影响长于6位的秒字段。 从这应该是微不足道的微秒转换为毫秒。
如果你需要一个新的行(可能因为它看起来更好),然后尝试
adjtimex | awk '/(time.tv_sec|time.tv_usec):/ { printf("%06d", $2) }' && printf "\n"
还要注意,这需要使用adjtimex和awk 。 如果没有,那么可以用busybox指向他们
ln -s /bin/busybox ./adjtimex ln -s /bin/busybox ./awk
然后再拨打上面的
./adjtimex | ./awk '/(time.tv_sec|time.tv_usec):/ { printf("%06d", $2) }'
或者当然你可以把它们放在你的PATH
编辑:
上面的工作在我的busybox设备上。 在Ubuntu上,我尝试了同样的事情,并意识到adjtimex有不同的版本。 在Ubuntu上,这工作输出的时间以秒为单位,以小数点后的位置为微秒(包括尾随的新行)
sudo apt-get install adjtimex adjtimex -p | awk '/raw time:/ { print $6 }'
我不会在Ubuntu上做这个。 我会用date +%s%N