2013-10-19 28 views
0

我想問我該如何使用egrep僅提取日期的月份部分的如何egrep從該日期的月份?

mm/dd/yyyy at hh:mm:ss 

形式我已經試過積極向後斷言但它似乎沒有工作。此代碼的上下文是:我正在查看多個文件並將每個文件的日期收集到timestamp.txt。在原始文件中,所有日期都位於TimeStamp:之後(注意冒號後的空格)

我對正則表達式不太滿意,所以我知道我錯過了表達式來阻止/後面的兩位數字以及。如果有人可以幫助我,那就太棒了:D

egrep "(?<=TimeStamp:\s)" $CURFILE | sort >> ../timestamp.txt 

謝謝!

+0

五月花發生了什麼。然後甚至搞亂日期中的訂單。即英國的d/m/y,美國的m/d/y。我希望他們喜歡波士頓的茶! –

+0

請提供一個輸入示例。 – Basilevs

+0

你爲什麼試圖做一個倒影? 'TimeStamp:\ s(\ d {2})\/\ d {2} \/\ d {4}'這個怎麼樣?它在PCRE工作 – revo

回答

1

不知道這是可能的egrep的,但它是用Perl

echo "TimeStamp: 12/10/2012"| perl -n -e 'print $1f m#: (..)/#' 

這裏是這樣

echo "TimeStamp: 12/10/2012"| awk -F/ '{print $1}' | awk '{print $2}' 
+0

sed呢? – Basilevs

+0

感謝您的回答!不幸的是,我只是Unix編程的初學者。你介意給我提供一個主要使用基本命令的解決方案嗎? – user2896865

+0

抱歉Basilevs我從不使用''sed'',爲''cut''和''awk''添加示例 – Vorsprung

1
echo "TimeStamp: 12/10/2012"| grep TimeStamp: | cut -d ' ' -f 2 |cut -d '/' -f 1 

代碼的另一種方法是未經測試,並有可能的說法逃脫問題。

這個想法是首先通過空格(或冒號)分割輸入,然後通過斜線分割輸入。如果行中有更多空格,則可能需要處理-f值或添加更多分割。

+0

@Vorsprung,你刪除了類似的建議,所以我已經恢復並更新它。 – Basilevs

相關問題