linux其实和internet一样,都是一个充满了大量信息、数据的东西,如何有效的过滤自己不用的信息、获取有用的信息反映了一个人水平的高低,这时候用各种工具与正则的结合变的异常强大
正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
awk对于从大的数据文件中抽取指定的数据包十分有用,比如你可以用他来管理passwd文件,或者是日志文件(相当巨大的文件,而用了awk就会变的很轻松了),通常awk都是和grep结合来用的,用grep抽出行,再用awk抽出行中指定的列,不过就算单独用awk也一样好用。
正则表达式只是一种表示法,只要工具支持这种表示法, 那么该工具就可以处理正则表达式的字符串。find、vim、grep、awk 、sed 都支持正则表达式,也正是因为由于它们支持正则,才显得它们强大
正则可以在许多种
不同的unix/linux 程序中使用,例如:find,grep,expr,vi,sed等
不同的编程语言中使用,例如:awk,perl,python等
在不同的程序与语言中有一些差异
下面的都是典型的通用概念,
预定义字符类
[:alnum:] Alphanumeric characters.
[:alpha:] Alphabetic characters.
[:blank:] Space or tab characters.
[:cntrl:] Control characters.
[:digit:] Numeric characters.
[:graph:] Characters that are both printable and visible. (A space is printable, but not visible, while an a is both.)
[:lower:] Lower-case alphabetic characters.
[:print:] Printable characters (characters that are not control characters.)
[:punct:] Punctuation characters (characters that are not letter, digits, control characters, or space characters).
[:space:] Space characters (such as space, tab, and formfeed, to name a few).
[:upper:] Upper-case alphabetic characters.
[:digit:] Characters that are hexadecimal digits.
grep 支持三种正则 基本 扩展 perl