2013-02-26 30 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