2010-08-05 17 views
3

有沒有什麼辦法在bash中用strftime獲得Unix時間,納秒?在bash中可能會有納秒級的strftime嗎?

我對UNIX時間線:

<command> | awk '{ print strftime("%s"), $0; }' 

我不能使用日期+%N,因爲迄今爲止只計算一次。

有什麼解決辦法嗎?

+0

在*的GNU/Linux *和[標籤:慶典] V> = 4.2,則可以使用'PROC/timerlist'中**純的bash **,見樣品[在SO elap.bash](HTTP ://stackoverflow.com/a/14110859/1765658)和他的[源文件](http://www.f-hauri.ch/vrac/cours_truc-et-astuces_2012-04-03/elap.bash) – 2013-12-31 09:25:42

回答

4

我發現使用,而讀一種解決方法。日期得到更新。不需要strftime。

<command> | while read line; do d=`date +%s%N`; echo $d $line; done 
0

你仍然可以使用date

ls | xargs -IQ date "+%s.%N Q" 

只是沒有%的您的輸出...(但你可以解決這太)

+1

I不要以爲''xargs'是長時間運行命令的好解決方案。根據手冊頁:「當使用-I選項時,從輸入讀取的每一行都被內部緩衝。」在實踐中,這意味着'xargs'不會執行'date'直到整個命令完成。因此,如果您想要標記守護進程或長時間運行命令的輸出時間,那麼'xargs'不會有太大的幫助。我想你可以通過不使用'-I'並讓'xargs'在'date'周圍執行一個包裝器來解決這個問題,但是對於bash中另外一個簡單的任務來說,這是一個很大的麻煩。 – Six 2015-09-26 08:12:03