分页: 1 / 1

这个是神码意思?grep '^[:alpha:]'

发表于 : 2012-08-28 18:12
13378333
grep '^[:alpha:]'

Re: 这个是神码意思?grep '^[:alpha:]'

发表于 : 2012-08-28 18:38
cnkilior
字幕开头

Re: 这个是神码意思?grep '^[:alpha:]'

发表于 : 2012-08-28 22:51
13378333
cnkilior 写了:字幕开头
alpha表示字母吗?还是:alpha:表示字母? :em20

Re: 这个是神码意思?grep '^[:alpha:]'

发表于 : 2012-08-28 23:12
tusooa
[[:alpha:]]表示字母。

Re: 这个是神码意思?grep '^[:alpha:]'

发表于 : 2012-08-28 23:13
tusooa
以下摘录自grep(1),版权由manpage指定。

代码: 全选

   Character Classes and Bracket Expressions
       A bracket expression is a list of characters  enclosed  by  [  and  ].   It
       matches  any  single  character in that list; if the first character of the
       list is the caret ^ then it matches any character not  in  the  list.   For
       example, the regular expression [0123456789] matches any single digit.

       Within  a bracket expression, a range expression consists of two characters
       separated by a hyphen.  It matches any single character that sorts  between
       the  two  characters,  inclusive, using the locale's collating sequence and
       character set.  For example, in the default C locale, [a-d]  is  equivalent
       to  [abcd].  Many locales sort characters in dictionary order, and in these
       locales [a-d] is typically not equivalent to [abcd]; it might be equivalent
       to  [aBbCcDd],  for  example.   To obtain the traditional interpretation of
       bracket expressions, you can  use  the  C  locale  by  setting  the  LC_ALL
       environment variable to the value C.

       Finally,  certain named classes of characters are predefined within bracket
       expressions, as follows.  Their names are self explanatory,  and  they  are
       [:alnum:],   [:alpha:],   [:cntrl:],   [:digit:],   [:graph:],   [:lower:],
       [:print:], [:punct:], [:space:], [:upper:], and [:xdigit:].   For  example,
       [[:alnum:]] means the character class of numbers and letters in the current
       locale. In the C locale and ASCII character set encoding, this is the  same
       as  [0-9A-Za-z].   (Note that the brackets in these class names are part of
       the symbolic names, and must  be  included  in  addition  to  the  brackets
       delimiting  the  bracket  expression.)   Most  meta-characters  lose  their
       special meaning inside bracket expressions.  To include a literal  ]  place
       it  first in the list.  Similarly, to include a literal ^ place it anywhere
       but first.  Finally, to include a literal - place it last.

Re: 这个是神码意思?grep '^[:alpha:]'

发表于 : 2012-08-28 23:15
tusooa

代码: 全选

● /bin/grep '^[:alpha:]' <<< 'ls'
/bin/grep: 字符类的语法是 [[:space:]],而非 [:space:]

Re: 这个是神码意思?grep '^[:alpha:]'

发表于 : 2012-08-28 23:38
lilydjwg
[:alpha:] 就是其中那几个字符的或……POSIX 风格的字符类是放在字符类 [] 中的 [:name:],不用两层 [] 会有二义性。

Re: 这个是神码意思?grep '^[:alpha:]'

发表于 : 2012-08-29 18:06
13378333
tusooa 写了:以下摘录自grep(1),版权由manpage指定。

代码: 全选

   Character Classes and Bracket Expressions
       A bracket expression is a list of characters  enclosed  by  [  and  ].   It
       matches  any  single  character in that list; if the first character of the
       list is the caret ^ then it matches any character not  in  the  list.   For
       example, the regular expression [0123456789] matches any single digit.

       Within  a bracket expression, a range expression consists of two characters
       separated by a hyphen.  It matches any single character that sorts  between
       the  two  characters,  inclusive, using the locale's collating sequence and
       character set.  For example, in the default C locale, [a-d]  is  equivalent
       to  [abcd].  Many locales sort characters in dictionary order, and in these
       locales [a-d] is typically not equivalent to [abcd]; it might be equivalent
       to  [aBbCcDd],  for  example.   To obtain the traditional interpretation of
       bracket expressions, you can  use  the  C  locale  by  setting  the  LC_ALL
       environment variable to the value C.

       Finally,  certain named classes of characters are predefined within bracket
       expressions, as follows.  Their names are self explanatory,  and  they  are
       [:alnum:],   [:alpha:],   [:cntrl:],   [:digit:],   [:graph:],   [:lower:],
       [:print:], [:punct:], [:space:], [:upper:], and [:xdigit:].   For  example,
       [[:alnum:]] means the character class of numbers and letters in the current
       locale. In the C locale and ASCII character set encoding, this is the  same
       as  [0-9A-Za-z].   (Note that the brackets in these class names are part of
       the symbolic names, and must  be  included  in  addition  to  the  brackets
       delimiting  the  bracket  expression.)   Most  meta-characters  lose  their
       special meaning inside bracket expressions.  To include a literal  ]  place
       it  first in the list.  Similarly, to include a literal ^ place it anywhere
       but first.  Finally, to include a literal - place it last.
试了下 [:alnum:], [:alpha:],好像都可以的样子

Re: 这个是神码意思?grep '^[:alpha:]'

发表于 : 2012-08-30 14:51
tusooa
13378333 写了:
tusooa 写了:以下摘录自grep(1),版权由manpage指定。

代码: 全选

   Character Classes and Bracket Expressions
       A bracket expression is a list of characters  enclosed  by  [  and  ].   It
       matches  any  single  character in that list; if the first character of the
       list is the caret ^ then it matches any character not  in  the  list.   For
       example, the regular expression [0123456789] matches any single digit.

       Within  a bracket expression, a range expression consists of two characters
       separated by a hyphen.  It matches any single character that sorts  between
       the  two  characters,  inclusive, using the locale's collating sequence and
       character set.  For example, in the default C locale, [a-d]  is  equivalent
       to  [abcd].  Many locales sort characters in dictionary order, and in these
       locales [a-d] is typically not equivalent to [abcd]; it might be equivalent
       to  [aBbCcDd],  for  example.   To obtain the traditional interpretation of
       bracket expressions, you can  use  the  C  locale  by  setting  the  LC_ALL
       environment variable to the value C.

       Finally,  certain named classes of characters are predefined within bracket
       expressions, as follows.  Their names are self explanatory,  and  they  are
       [:alnum:],   [:alpha:],   [:cntrl:],   [:digit:],   [:graph:],   [:lower:],
       [:print:], [:punct:], [:space:], [:upper:], and [:xdigit:].   For  example,
       [[:alnum:]] means the character class of numbers and letters in the current
       locale. In the C locale and ASCII character set encoding, this is the  same
       as  [0-9A-Za-z].   (Note that the brackets in these class names are part of
       the symbolic names, and must  be  included  in  addition  to  the  brackets
       delimiting  the  bracket  expression.)   Most  meta-characters  lose  their
       special meaning inside bracket expressions.  To include a literal  ]  place
       it  first in the list.  Similarly, to include a literal ^ place it anywhere
       but first.  Finally, to include a literal - place it last.
试了下 [:alnum:], [:alpha:],好像都可以的样子
是[[]]