2015-06-22 72 views
0

grep -P很簡單的輸出,在1號線文件:GNU的grep -P選項與Perl的正則表達式匹配

[ldagan:dfII]cat test 
oh,this,is,config,2 
[ldagan:dfII]grep -icP '\S+?,config,' test 
0 

然而,得到的字符串在Perl中匹配的正則表達式確實匹配!
見下文:

[ldagan:dfII]perl -e ' if ("oh,this,is,config,2" =~/\S+?,config,/) 
{print "yey!\n"} else {print "ney!\n"} ;' 
yey! 

我使用GNU grep的版本2.5.1

+0

化妝此:'=〜/ \ S + ?,配置,'這樣:'=〜/ [^ [:空間:]] + ?,配置,'添加'-P'標誌也 – Downgoat

+0

嘗試不用'-c' –

+0

你好Avinash。 -c旨在表明沒有匹配。 W/O它,一個獲得0行。 – user1134991

回答

1

考慮更新的grep。它正常工作與GNU grep的版本2.16:

$ /bin/grep -icP '\S+?,config,' test 
1 

請記住,在grep的的-P功能仍處於試驗。

0

有兩種解決方案,一種是更新grep,就像Arkanosis建議的一樣。 第二個類似於vihan1086的建議。 使用

grep -iCP '[^ ]+?' test