2013-03-25 68 views
4

我有一個文件a爲什麼grep promt「無效範圍結束」?

$ cat a 
abcd 
kaka 

使用命令時:

$ grep -e '[a-d]' a 
abcd 
kaka 

它運作良好,但爲什麼這些命令是不正確的?

$ grep -e '[\x61-\x74]' a 
grep: Invalid range end 

$ grep -e '[\u0061-\u0074]' a 
grep: Invalid range end 

回答

2

假設你的grep版本支持PCRE( 「Perl兼容的正則表達式」),你可以嘗試:

grep -P '[\x61-\x74]' a 

這將返回預期輸出:

abcd 
kaka 
+0

什麼是這樣的:\ x61? – 2015-10-20 10:43:59

+0

@edwardtorvalds hex 61 is a lowercase a – Jeff 2016-11-14 20:26:50

+0

雖然不適用於unicode: 'grep -P'[\ u0061- \ a0074]'a'產生「 grep:PCRE不支持\ L,\ l, \ N {name},\ U或\ u – matanster 2017-12-05 10:18:49