grep及正则表达式
正则表达式就是我们自己定义的一套规则方法来满足我们的任务需求,正则表达式在我们日常使用中的应用特别广泛,因此要学好它。我们把grep(egrep),sed,awk这三个最常用的正则表达式的命令称为Linux下三剑客!
grep常用的参数:
-n:显示行号
-v:取反
-E:使用扩展正则表达式
-o:仅显示匹配的内容
-i:忽略大小写
-w:按字符匹配
正则表达式分为基本正则表达式和扩展正则表达式
正则表达式常用的一些元数据:
^abc:搜索以abc开头的行
abc:搜索以abc结尾的行
. :匹配任意一个字符
*:前面的一个字符重复零到多次,
则 .* 表示任意多个字符
例如:我想在一个文本中找出开头结尾都是g的字符,我们就可以用grep -n ‘g.*g’ test来实现
\:转义符
[list]:匹配一系列字符中的一个
[n1-n2]:匹配一个字符范围中的一个,例如[1-9],[a-z]
[^list]:匹配字符集以外的字符,例如匹配非o字符,grep -n ‘[^o]’ test
\{n1,n2\}:前面的单个字符重复n1,n2次
例如我想匹配love,loove,looove ,可以用grep -n ’ lo\{1,3\}ve ’ file来实现
\<word:匹配以word开头的单词
word\>:匹配以word结尾的单词
’ ':强引用
" ":弱引用
[[:alnum:]]:代表英