2013-05-02 35 views
0

Git中的Bash一個分隔符之後的字符串我有這樣的文件:使用grep來找到一條線的beggining或爲Windows

blue|1|red|2 
green|3|blue|4 
darkblue|0|yellow|3 

我想用grep找到任何東西行的開頭方含blue||blue|任何地方,但沒有任何darkblue||darkblue||blueberry|

我試圖用grep [^|\|]blue\|但混帳擊給我的錯誤:

$ grep [^|\|]blue\| *.* 
grep: Unmatched [ or [^ 
sh.exe": |]blue|: command not found 

我做錯了什麼?什麼是正確的方法來做到這一點?

回答

1

這裏有一個快速&葷一:

grep -E '(^|\|)blue\|' * 

比賽開始線或|,其次是blue|。需要注意的是,您需要擴展正則表達式(通過egrep-E標誌)才能使用|(或)構造。

+0

它的工作原理!所以-E和正常括號。謝謝。 – ericcire 2013-05-02 15:30:56

1

另外,請注意正則表達式周圍的單引號。

所以,在回答OP的「?我做了什麼錯」,

  1. 你忘了單引號中的正則表達式;
  2. 您選擇了括號的錯誤類型以包含替代表達式;最後
  3. 你忘了使用egrep的或-E標誌

這是看其他人的失誤總是比較容易;我希望能很快找到我自己的: - |

+0

也是引號......是的 – ericcire 2013-05-02 15:36:31