2012-06-26 66 views
1

對不起,我的簡單問題。但我正在尋找一種方法來刪除以字符串開頭的文件中包含2或3個大寫字母幷包含日期的行。例如:刪除包含日期和另一個表達式的行

ABC/ Something comes here, 29/1/2001. 

在寫這樣的腳本的第一步我用這段代碼來查找並顯示包含日期的行,但它不起作用。

sed -e 's/[0-9]+\/[0-9]+\/[0-9]+//' myfile.txt 

這段代碼出了什麼問題,我該如何改變它以做我想做的事?

推薦推薦。

回答

1
sed -r -e '/[A-Z]+.*[0-9]+\/[0-9]+\/[0-9]+/p;d' # on Mac OSX: sed -E -e ... 

然後直接刪除該行做這樣的事情......

'/[A-Z]+.*[0-9]+\/[0-9]+\/[0-9]+/d' 
1

我會嘗試:

sed -e '/^[A-Z]\{2,3\}.*[0-9]\{1,2\}\/[0-9]\{1,2\}\/[0-9]\{4\}/ d' input-file 

說明:

^     Match at the beginning of the pattern. 
[A-Z]\{2,3\}  Match two or three uppercase ASCII letters. 
.*     Match anything. 
[0-9]\{1,2\}\/  Match the day, one or two digits, and the separator. 
[0-9]\{1,2\}\/  Same match for the month. 
[0-9]\{4\}   Match four digits for the date. 
d     If previous regexp matched, delete the line. 
相關問題