讓我們看看下面的CSV文件格式:添加YYYY-MM-DD爲HH:MM:在CSV SS時間戳文件
server_name status_code timestamp probe_name
其中STATUS_CODE可以I或E,以及各個領域的分離通過表格
舉個例子,我們可以考慮以下CSV行:
albatros.benches.com I 14:55:23.145 througput_probe
每一個CSV文件包含了一整天值得日誌。我試圖讓所有HH:mm:ss的時間戳帶有前綴實際YYYY-MM-DD,這樣得到的線條將如下:
albatros.benches.com I 2013-02-25 14:55:23.145 througput_probe
還有一個好處,因爲CSV文件保存日期(文件名是log_2013_02_25.txt),因爲我有很多這些文件(當然不同的日子)是'sed'ed',我希望我可以自動使用文件名作爲種子來抓取合適的日子並在時間戳轉換中應用它。
編輯:文件名是log_YYYY_MM_DD.txt,不log_YYYY-MM-DD.txt如前所述)
我的sed和正則表達式的知識是相當有限的。到目前爲止,我使用的是這樣的:
s/I^T/I^T 2013-02-25 /g
s/E^T/E^T 2013-02-25 /g
(^ T實際上是一個^ V後跟一個製表按鍵)
在我所有的文件,但是這真的看起來很彆扭我。如果有一天我們添加另一個狀態碼(例如X),這個技巧將不起作用。我想這會更容易讓sed處理第三個字段,並將其作爲前綴。我無法弄清楚如何正確地做到這一點。
任何想法歡迎!
謝謝
日期和時間戳是否應該由製表位或僅由一個空格分開?此外,狀態碼是唯一字段,只有1個字符長? – speakr 2013-02-25 21:12:24
@speakr:日期和時間由一個空格分隔。代碼字段恰好是1個字符是;) – SCO 2013-02-26 08:28:42
是的,但是狀態字段__字段長度爲1個字符或者是否有其他任何長度相同的字段? – speakr 2013-02-26 09:14:56