其他的答案很可能在大多数情况下足够了,但我认为我会当我在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