grep命令与正则表达式

  搜寻特定字符串the

 常用参数:-a 将binary档案以test档案的方式搜寻数据    -c  计算找到'搜寻字符串'的次数    -i 忽略大小写的不同  -n  顺便输出行号  -v  反向选择。即输出没有'搜寻字符串'内容的那一行

 $ grep -n 'the' regular_express 

 $ grep -in 'the' regular_epress

  字符组匹配

 []中包含的任意一个字符,只能是一个。字符组支持由连字符'-'来表示一个范围。当'-'前后构成范围时,要求前面的字符的码位小于后面字符的码位。[^...]排除型字符组。排除后面的字符。

 [abc]  a或b或c

 [0-9]  [0123456789] 0~9中任意一个数字

 [u4e00-u9fa5]  表示任意一个汉字

 [^a1<]  表示除a、1、<外的其他任意一个字符

 [^a-z]   表示除小写字母外的任意一个字符

 $ grep -n 't[ae]st' regular_express.txt

 $ grep -n '^#' regular_express.txt

  行首符^与行尾符$

 $ grep -n '^the' regular_express.txt  #查询以the为行首的命令符 

 '^[A-Z]' 表示以大写字母为开头   '[^A-Z]' 表示除大学祖母A-Z的所有字符

 $ grep -n 'd$' regular_epress.txt   #查询以d字母结尾的行

 $ grep -n '^$' regular_express.txt #查找空行

  任意一个字符'.'与重复字符'*'

 $ grep -n 'a.ou' regular_express.txt  #查找a?ou?类型的字符  一个小数点只能表示一个未知字符

 *:代表重复前面0个或多个字符

 $ grep -n 'e*' regular_express.txt  #前面有0个或多个e  

 e*   具有空字符或一个以上的e

 ee* 第一个e必须存在,第二个可以是0或多个e字符

 eee* 前面两个e必须存在,第三个e则可以是0或多个e字符

 ee*e   第一个e和第三个e必须存在,中间可以有0或多个e

  限定连续字符范围{}

 {}可以限制一个范围区间内重复字符数。

 $ grep -n 'o{2}' regular_express.txt  #查找连续的两个o字符

 $ grep -n 'go{2,5}g' regular_express.txt  #查找有2~5geo

 

原文地址:https://www.cnblogs.com/forerver-elf/p/4710875.html