grep基本用法
作用
grep是一种文本搜索工具,在Linux中常用的文本搜索工具还有sed和awk.
我们常用grep在内容繁多的文本中匹配到我们所需要的字符,并显示字符(串)所在的行.
格式
grep [参数] [文件]
常用参数
grep --color 显示匹配到字符(串)的颜色
grep -i 忽略字符大小写
grep -o 仅显示匹配的字符(串)
grep -v 反选(匹配到的行反而不显示)
grep -E 使用扩展正则表达式(在语句没错,而且使用普通正则查询不出来时使用扩展正则,会有惊喜)
grep -n 显示行号
grep -w 以字符形式查询
正则表达式
作用
正则表达式是为了方便我们处理大量文本信息而制定的一种规则(方法).
正则表达式可以用来检索文本中符合规则的信息.
它不仅在Linux中使用,在C语言和其他编程语言中也是通用的,所以说,正则表达式是非常重要的一个点.
常用参数
参数 | 示例 | 意义 | 代码 | 结果 |
---|---|---|---|---|
^ | ^S | 匹配以S开头的行 | grep ‘^S’ /proc/memino | |
$ | :/bin/bash$ | 显示以/bin/bash结尾的行 | grep ‘:/bin/bash’ /etc/passwd | |
. | r.t | 匹配r和t中间有任意一个字符 | grep ‘r.t’ /etc/passwd | |
\ | 转义字符具有特定的含义,不同于字符原有的意义 | |||
* | go*gle | 匹配g(若干个o(0 - +∞))gle | echo ‘gle,gogle,google,gooogle’ |grep ‘go*gle’ | |
[n1-n2] | [0-9]+% | 匹配含有0-9十个数字+%的字符(串) | df | grep ‘[0-9]+%’ | |
[^] | [^t] | 匹配非t字符 | grep ‘[^t]’ /etc/shadow | |
{n1,n2} | go{2,3}gle | 匹配google或gooogle | echo ‘google,gooogle,gooooogle’ |grep ‘go{2,3}gle’ | |
\< | \<r | 匹配以r开头的单词 | grep ‘\<r’ /etc/passwd | |
\> | t\> | 匹配以t结尾的单词 | grep ‘t>’ /etc/passwd |
常用特殊符号
参数 | 意义 |
---|---|
[[:alnum:]] | 代表英文大小写字符和数字==[0-9],[A-Z],[a-z] |
[[:alpha:]] | 代表英文大小写==[A-Z],[a-z] |
[[:space:]] | 代表任何空白字符 |
[[:digit:]] | 代表数字==[1-9] |
[[:lower:]] | 代表小写字符==[a-z] |
[[:upper:]] | 代表大写字符==[A-Z] |