1.正则表达式:就是一套处理大量字符串而定义的规则和方法。
2.正则表达式的应用很广泛,PERL ,PHP,JAVA等。
3.linux运维中的正则表达式常用的:grep ,sed ,awk (linux三剑客).
4.正则表达式和linux通配符是有本质区别的。
注意事项:a,linux正则表达式一般以行为单位处理的。
b,vim /etc/profile alias grep='grep --color=auto' (生效)source /etc/profile
5.linux 正则表达式
基础正则表达式:BRE
1)^word 表示搜索以word开头的内容 grep "^I" test.txt
2)word$表示以word结尾的内容 grep ".$" test.txt
3)grep "^$" test.txt
4)grep -v "^$" test.txt 排除空行
5). 代表任意一个字符,(当前目录,加载文件)
6)\ 转义字符 \. 还原小数点 grep "\.$" test.txt
7)* 重复0个或多个前面的一个字符 grep "o*" test.txt
8).* 匹配所以字符. ^.* 任意多个字符开头。
9)[abc] 匹配字符集合内任意一个字符[a-z]
10)[^abc] ^表示非 ,不包含a或b或c grep "[^0-9]" test.txt
11).{} 重复前一个字符(注意加\ 转义)
.{n} 至少n次
.{m} 至多m次
.{n,m} 重复n到m次 grep "1\{1\}" test.txt
grep "1\{1,2\}" test.txt
grep命令:
-v 排除匹配的内容
-E 支持扩展的正则表达式
-i 忽略大小写
-o 只输出匹配的内容
--color=auto 匹配的内容显示颜色
-n 在行首显示行号
cat -n test.txt 显示行号
wc -l 统计行数
POSIX字符:
为了在不同国家的字符编码中保持一至,POSIX(The Portable Operating System Interface)增加了特殊的字符类,如[:alnum:]是[A-Za-z0-9]的另一个写法。要把它们放到[]号内才能成为正则表达式,如[A- Za-z0-9]或[[:alnum:]]。在linux下的grep除fgrep外,都支持POSIX的字符类。
[:alnum:] #文字数字字符
[:alpha:] #文字字符
[:digit:] #数字字符
[:graph:] #非空字符(非空格、控制字符)
[:lower:] #小写字符
[:cntrl:] #控制字符
[:print:] #非空字符(包括空格)
[:punct:] #标点符号
[:space:] #所有空白字符(新行,空格,制表符)
[:upper:] #大写字符
[:xdigit:] #十六进制数字(0-9,a-f,A-F)
1.显示/etc/passwd文件中以bash结尾的行
2.显示/etc/passwd文件中的两位数或三位数
3.显示`netstat -tan`命令结果中以‘LISTEN’后跟0个、1个或者多个空白字符结尾的行
4.添加用户bash、testbash、basher以及nologin用户(nologin用户的shell为/sbin/nologin);而后找出/etc/passwd文件中用户名与其shell名相同的行
5.显示当前系统上root、centos或者user1用户的默认shell和UID (请事先创建这些用户,若不存在)
6.找出/etc/rc.d/init.d/functions文件中某单词(单词中间可以存在下划线)后面跟着一组小括号的行
7.使用echo输出一个路径,而后egrep找出其路径基名;进一步的使用egrep取出其目录名
8.找出ifconfig命令执行结果中1-255之间的数字
转载于:https://blog.51cto.com/laoli110/1689881