2017-07-18 38 views
-1

我有一個流數據流(ssh連接),我想重定向輸出到基於當前日期的文件名。如何將流數據重定向到基於日期的文件?

問題是,我確實想在午夜「旋轉」文件,所以我最終會在流日誌記錄的每一天結束一個文件。

我可以只在bash中做到這一點嗎?怎麼樣?

理想情況下,旋轉應該發生而不會破壞換行符。

+0

你是什麼意思的「沒有打破換行」? – janos

+0

@janos如果您在23:59:59收到一行,您可能希望將其寫入當前日誌並開始登錄下一行的新一天,而不是將單行擴展爲兩個文件。 – sorin

+0

所以你不想打破*行*。這是否也意味着我們可以逐行讀取流? (而不是逐字節讀取) – janos

回答

0

您可以逐行閱讀stdin,並追加到文件中,名稱取決於讀取行時的日期。

while IFS= read -r line; do 
    log=log.$(date +%F) 
    echo "$line" >> "$log" 
done 
相關問題