正则表达式

 正则表达式很重要。
正则表达式是用在字符串处理中的“表达式”,以行为单位进行字符串的处理,通过一些特殊符号的辅助,,可以让用户轻松搜索/替换某特定字符串。正则表达式对于系统管理员来说很重要,因为系统会产生很多信息,这些信息
有的重要,有的仅是告知用户一些信息。此时,管理员可以通过正则表达式的功能将重要信息选取出来,产生便于查看的报表,简化管理流程。
1、通过grep选取字符串
语法:grep [-acinv] '搜索字符串' filename
参数说明:-a:在二进制文件中,以文本文件的方式搜索数据
-c:计算找到 '搜索字符串' 的行数
-i:忽略大小写
-n:输出行号
-v:反向选择,即显示出没有 '搜索字符串' 的那一行
例如:
[root@rac1 tmp]# grep 'root' secure
Aug 4 13:32:43 rac1 gdm[3140]: pam_unix(gdm:session): session opened for user root by (uid=0)
Aug 4 13:33:54 rac1 sshd[3404]: Accepted password for root from 192.168.72.1 port 58118 ssh2
Aug 4 13:33:54 rac1 sshd[3404]: pam_unix(sshd:session): session opened for user root by (uid=0)
Aug 4 16:43:40 rac1 sshd[8006]: Accepted password for root from 192.168.72.1 port 59116 ssh2
Aug 4 16:43:40 rac1 sshd[8006]: pam_unix(sshd:session): session opened for user root by (uid=0)
[root@rac1 tmp]# grep -n 'root' secure
9:Aug 4 13:32:43 rac1 gdm[3140]: pam_unix(gdm:session): session opened for user root by (uid=0)
10:Aug 4 13:33:54 rac1 sshd[3404]: Accepted password for root from 192.168.72.1 port 58118 ssh2
11:Aug 4 13:33:54 rac1 sshd[3404]: pam_unix(sshd:session): session opened for user root by (uid=0)
12:Aug 4 16:43:40 rac1 sshd[8006]: Accepted password for root from 192.168.72.1 port 59116 ssh2
13:Aug 4 16:43:40 rac1 sshd[8006]: pam_unix(sshd:session): session opened for user root by (uid=0)
[root@rac1 tmp]# grep -c 'root' secure
5

grep
说明
^word
待搜索的字符串在行首
word$
待搜索的字符串在行尾
.
代表”任意一个字符“,一定是一个任意字符

转义符,将特殊符号的意义去除
*
重复零个或多个前一个字符
{n,m}
连续n到m个的“前一个重复字符”
[]
字符集合的重复特殊字符的符号
 
 
egrep
说明
 +
重复字符次数一次或一次以上
 ?
重复字符0次或以上
 |
用或(or)的方式找出数个字符串
 ()
找出“用户组”字符串


























最后写个例子:去除syslog.conf文件中空行及以#开头的行。
[root@rac1 tmp]# grep -v '^$' syslog.conf | grep -v '^#'
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg *
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log

原文地址:https://www.cnblogs.com/zhaoshuangshuang/p/3236631.html