2012-07-03 38 views
0

我想要構造一個正則表達式,對於我給出的每一行文本輸入,挑選出XX,YY和ZZ是什麼,最好是將值返回給我在變量中,我可以將它們加起來或放入數組或其他內容中。「Some text repeating:XXhYYmZZs」的正則表達式

事情是我對於正則表達式和shell腳本都是比較新的(我將使用csh來完成這個任務)。所以我想知道如何用csh regex來做到這一點,如果它不同於說perl正則表達式。

只是重申模式如下:

Some text repeating: 23h04m31s 
... 
Some text repeating: 12h13m22s 
... 

編輯 - 我的腳本將需要尋找到這個特定的文件。我想我可以在我的csh腳本中使用GREP工具,並使用正確的正則表達式。

謝謝你的幫助!

+0

如果您確實是shell腳本的新手,那麼您應該重新考慮使用'csh'。 'csh'不適用於腳本編寫,你可以自己幫忙避免它。 –

+0

告訴我的僱主大聲笑 – JDS

回答

2
while read line 
do 
    time=${line##*: } 
    hours=${time%h*} 
    minutes=${time#*h} 
    minutes=${minutes%m*} 
    seconds=${time#*m} 
    seconds=${seconds%s*} 

    do_something_with "$hours" "$minutes" "$seconds" 
done < yourinputfile 
+0

只是看到你想'csh',但上面是'sh'。 –

+0

你碰巧知道微小的區別? – JDS

+0

不,對不起,我只用'sh' - 這是你無論如何都需要知道的東西,而且是迄今爲止使用最廣泛的東西,正如有些人說的那樣,有一個原因。但我確定這些差異不是很小。 –