我正在使用sed和剪切,這將需要時間輸入以各種方式,並以特定格式輸出它們的bash腳本。下面是一個例子行:Bash腳本:使用sed和剪切輸出特定格式
timeinhour=$(cut -d" " -f2<<<"$line" | sed 's/p/ /' | sed 's/a/ /' | sed 's/am/ /' | sed 's/pm/ /' | sed 's/AM/ /' | sed 's/PM/ /')
正如你看到的,我只是去除可能以各種方式進行格式化,只留下數字的時間進入任何尾隨上午或下午。
所以我想這條線只是吐出一天的時間(timeinhour),即「10a」和「10am」的「1000AM」=「10」。
我遇到的問題是時間條目變化的長度。如果我告訴sed或剪切以刪除最後兩個字符,「1000」將正確輸出我需要的小時數:「10」,但在已經爲「10」的小時使用它顯然會導致空白輸出。
我一直在用一條線試驗這樣
sed 's/\(.*\)../\1/'
如果任何人有任何建議,我將不勝感激。
例如,該輸入:
1p
1032AM
419pm
1202a
將產生:
1
10
4
12
對此深感抱歉。顯示的特定行的輸入將是一段時間,可能以各種格式書寫。示例輸入:1p 1032AM 419pm 1202a。輸出將只是一天中的一小時。示例輸入=輸出組合:1p = 1 1032AM = 10 419pm = 4 1202a = 12 – user686566 2011-05-14 17:24:21
@mu太短:這就是他的意思。 – Lucius 2011-05-14 17:45:51