grep 是命令行中非常常用的一种文本处理命令,如果其能跟强大的正则表达式结合使用,将可以更加高效的对特定文本进行抓取与处理。
grep本身是可以解释三种类型的正则表达式的 basic(基本类型, 直接使用grep命令), extend(扩展型, 使用egrep命令), perl(perl类型, 传入-P选项)。
grep几种常用选项
- -n 显示匹配到字符串的行数
- -w 表示匹配确定的单词如
grep -w 'vicky'
只会匹配vicky 而vickyy就不会匹配出来 - -i 匹配时忽略大小写
- -v 反向匹配,输出没有匹配到的字符串
- -P 传入的变量为Perl类型的正则表达式,如
grep -P '^(?:(?!git).)*$' LIST
- -E 正则表达式匹配,跟egrep一致
正则表达式里面的常用符号解释
- . 表示匹配任意字符
*
表示匹配任意字符串- ^ 用在开头表示,匹配开头的字符,用在括号里面[^a-z] 表示不匹配a-z中的任意一个字符
- ? 表示非贪婪匹配,匹配到相应字符串后就跳出不继续匹配后面的了
- [] 匹配括号中任意一个字符,如[A-Z] 匹配A-Z中的任意一个。
- ( ) 将匹配分组, 如 (ab){1,3} 表示ab这个组合要连续出现1-3次。
- { } 匹配长度 , 如/s{3} 匹配三个space空格。
命令行匹配时,注意使用单引号引用匹配内容,双引号会解释其中的变量$varible,这往往是我们不期望的。
本文原创,错误之处在所难免!盼指出!