1
我有一個很大的txt文件空間,我將其分成18個較小的文件(每個文件都有自己的列數)。此分割基於分隔符,即每當時間戳命中午夜時。所以有效,我會在形式的18個文件結束(注意,忽略破折號和管道,我用它們來提高可讀性):Bash和awk:將字段從12小時轉換爲24小時時間
文件1
time ----------- valueA - valueB
12:00:00 AM | 54.13 | 239.12
12:00:01 AM | 51.83 | 119.93
..
file18
time ---------- valueA - valueB - valueC - valueD
12:00:00 AM | 54.92 | 239.12 | 231.23 | 882.12
12:00:01 AM | 23.92 | 121.92 | 201.23 | 892.12
..
一旦我分裂文件I隨後對每個使用AWK的文件的執行一些處理,以便在短的有2個階段的「分裂階段」和「處理級」。
不幸的是,包含在大文本文件中的時間戳是2種格式中的1種。可能是24小時格式的「00:00:01」或12小時格式「12:00:01 AM」。
因此,我試圖將所有格式轉換爲24小時,我不知道如何做到這一點。我也不確定是否在分裂階段使用bash或在使用AWK的流程階段進行嘗試。我知道下面的函數轉換12小時至24小時
'date --date="12:00:01 AM" +%T'
然而
,我不知道如何在「分裂階段」將這一進我的shell腳本是我使用「而讀行」或者在'處理階段'是否應該在AWK中進行時間轉換(如果可能?)。
您好,感謝您的答覆,我試圖用你的代碼來養活一個輸入文件,並轉換所有的文件12小時時間戳爲24小時,但它沒有做轉換: 'cat「myFile.txt」|而讀線; do echo「$ line」| awk -F'''BEGIN {OFS =「」} {(「date --date = \」「$ 1」\「+%T」)| getline $ 1; print}'> test .txt done' 我的文件是空格分隔的,但上面的代碼不會將時間轉換爲24小時?再次感謝您的幫助。 – cbros2008
對不起,我意識到我應該在日期部分(時間和上午/下午)有1美元2美元而不是1美元。它現在有用,謝謝! – cbros2008