2012-07-20 26 views
1

有文件data一條線,作爲在grep的,爲什麼它需要[而不是]

[綜合] ...

使用grep時逃跑獲得這一行,我覺得這隻能通過

的grep做 「\ [綜合]」 數據

只是出於好奇,爲什麼它需要轉義[而不是]

編輯:這是在Ubuntu 12.04

回答

4

因爲]只有在沒有轉義的[之前有任何特殊含義。

你可以愉快的(如果你有正確的,有點扭曲,心態)有:

grep '[][-]' ... 

此搜索][-。您必須注意]的位置;它必須在角色類的開始。您必須注意-的位置;它必須在課程開始或結束時進行。而否定班級的脫字符號必須先行。

grep '[^][-]' ... 
+0

+1對無聊的怪異娛樂活動建議... ;-P – twalberg 2012-07-20 15:38:07

3

我猜測,沒有開口測試[指定一個字符類,閉合]已經沒有意義了。所以一旦你逃脫了左括號,最後一個就不需要逃跑了。

1

我第二個德里克和喬納森的答案。一年中,我發現自己使用fgrep多於grepfgrepgrep -Fgrep --fixed-strings相同,其中搜索項只是一個字符串,而不是正則表達式。例如,如果我想搜索[overall]

fgrep "[overall]" file 
相關問題