-1
我有一個流數據流(ssh連接),我想重定向輸出到基於當前日期的文件名。如何將流數據重定向到基於日期的文件?
問題是,我確實想在午夜「旋轉」文件,所以我最終會在流日誌記錄的每一天結束一個文件。
我可以只在bash中做到這一點嗎?怎麼樣?
理想情況下,旋轉應該發生而不會破壞換行符。
我有一個流數據流(ssh連接),我想重定向輸出到基於當前日期的文件名。如何將流數據重定向到基於日期的文件?
問題是,我確實想在午夜「旋轉」文件,所以我最終會在流日誌記錄的每一天結束一個文件。
我可以只在bash中做到這一點嗎?怎麼樣?
理想情況下,旋轉應該發生而不會破壞換行符。
您可以逐行閱讀stdin
,並追加到文件中,名稱取決於讀取行時的日期。
while IFS= read -r line; do
log=log.$(date +%F)
echo "$line" >> "$log"
done
你是什麼意思的「沒有打破換行」? – janos
@janos如果您在23:59:59收到一行,您可能希望將其寫入當前日誌並開始登錄下一行的新一天,而不是將單行擴展爲兩個文件。 – sorin
所以你不想打破*行*。這是否也意味着我們可以逐行讀取流? (而不是逐字節讀取) – janos