我有一個這樣的文件:從時間刪除秒(AWK,SED)
XX1, 1.1,24.08.1994 13:00:00, 111,112,113
XX2, 1.2,24.08.1994 13:30:00, 121,122,123
XX3, NaN,22.08.1995 15:00, 131,132,133
所以時間格式是不相符的。有些行有時間,如hh:mm:ss,有些行有時間格式hh:mm。我想刪除秒,並得到一個文件是這樣的:
XX1, 1.1,24.08.1994 13:00, 111,112,113
XX2, 1.2,24.08.1994 13:30, 121,122,123
XX3, NaN,22.08.1995 15:00, 131,132,133
我試過至今
#!/bin/bash
sed '[email protected],\(..\):\(..\):\(..\) @,\1:\2 @' <time_fault> ./time_corrected
和
#!/usr/bin/awk -f
BEGIN { RS="," ; FS=":"; ORS=","}
{ getline str
gsub(/*..:..:..*/, $1":"$2 str) > time_corrected }
但都沒有奏效。
這個作品!但我不明白如何......首先你將當前記錄$ 0分割爲一個帶分隔符「:」的數組a。對於字段Nr。大於2時,用逗號替換兩位數字和逗號?而最終的結果是什麼? – telemachos
如果nr> 2,表示該行有「秒」部分,gsub用於刪除該部分。 1到底意味着,實際上是「真實的」,打印當前行,當然已經被gsub取代了。 – Kent