2011-09-07 54 views
0

我試圖在一行中查找' - '字符,但是此字符用於指定範圍。我可以得到一個包含' - '字符的sed模式的例子嗎?在sed模式中指定「 - 」

此外,如果我可以使用包含除空格和製表符之外的所有字符的模式,它會更快。

回答

6

'-'僅指定方括號之間的範圍。

例如,這樣的:

sed -n '/-/p' 

打印含有'-'字符的所有行。如果您想要'-'在方括號之間表示自己,請將其置於[之後或]之前。此:

sed -n '/[-x]/p' 

打印含有或者是'-''x'所有行。

這種模式: [^ <tab>]

比賽比空間和選項卡(注意,您需要一個文字製表符,而不是「<tab>」)以外的所有字符。

+0

非常感謝您再次對UNIX提供幫助。這肯定會縮短我的代碼。 – sj755

2

如果你想找到一個破折號,人物類的外部指定:

/-/ 

如果你想將其包含在字符類,使其成爲第一個或最後一個字符:

/[-a-z]/ 
/[a-z-]/ 

如果你想找到除空白或標籤(或換行)任何東西,那麼:

/[^ \t]/ 

哪裏,我趕緊補充, '\t'是一個字面製表符,而不是反斜槓-t。

0

查找 「 - 」 文件

awk '/-/' file