2013-02-26 34 views
1

我嘗試從一個文本文件,這種格式只匹配數字:猛砸正則表達式匹配數字

> 1234 

我跑通以循環的文件。在$i

$i | grep "\d{4}" 

輸出的每一行店看起來是這樣的:

> 
1234 
> 
5678 

爲什麼它仍然outputing的>?我想刪除這些。

+1

'在該行的開始$ i'將嘗試與它的值運行一個命令,例如一個叫做'1234'的命令。我也對「你做錯了什麼」感到困惑。你的輸出對我來說不會錯...... – 2013-02-26 15:11:33

+0

你只想顯示數字嗎? – raina77ow 2013-02-26 15:12:52

+0

對不起,我不清楚。我的意思是爲什麼它輸出'>'。我試圖擺脫那些。 – ExceptionLimeCat 2013-02-26 15:33:19

回答

2

man grep

-o, --only-matching 
      Print only the matched (non-empty) parts of a matching line, with each such part on a 
      separate output line. 

嘗試grep -o ....

測試:

i="> 1234" 
$ echo "$i" 
> 1234 
$ echo "$i" | grep -oP "\d{4}" 
1234 
+0

注意自我,檢查聯機幫助頁......很明顯,從Solaris 7的grep :-)開始已經發生了變化 – William 2013-02-26 15:45:26