标签:linux正则表达式
过滤,在文件中找东西
省事,提高我们的效率
正则表达式就是为了处理大量的文字、文本、字符串而定义的一套规则和方法
linux正则表达式一般以行为单位处理的
一次处理一行
linux运维工作,大量过滤日志文件,化繁为简,找东西
简单、高效、易用
正则表达式是高级工具:三剑客都支持
通配符是用来找文件,linux下面大部分命令都可以用
(ls * .txt cp /tmp)
正则表达式用来找文本、文字、文件内容常用的地方就是三剑客
1.正则表达式是按照行来处理
2.grep |egrep 给grep:egrep找到的内容加上颜色
grep
cat>>/etc/profile<<EOF
alias egrep=‘egrep--color=auto‘
alias grep=‘grep --color=auto‘
EOF
source /etc/profile
^ $ . * [] [^]
例:
cat >>/oldboy.txt<<EOF
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinesechess!
my blog is http://oldboy.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448.
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
+ | ? {}
$ 以....结尾
找出以m结尾的
grep "$m" oldboy.txt
cat -An oldboy.txt
-----.* * + {}
正则表达式的
##贪婪 有多少钱拿到多少钱能吃多少 吃多少 能匹配多少匹配多少
##表示所有的时候 .*
正则表达式的贪婪性
找出文件中的大小写字母和数字
grep -n "[a-z0-9A-Z]" /oldboy.txt
#grep "数字小写字母"
grep "^[^mn]" /oldboy.txt
grep "[abc]" oldboy.txt
grep "[^abc]" oldboy.txt
^oldboy
^m
$ 以xxxxxx结尾
以m结尾的行
grep "m$" oldboy.txt
my blog is http://oldboy.blog.51cto.com
空行这一行里面啥也没有 没有任何的符号 空格
grep " " oldboy.txt
[root@oldboyedu-39-nb ~]#cat -An oldboy.txt
1 Iam oldboy teacher!$
2 Iteach linux.$
3 $
4 Ilike badminton ball ,billiard ball and chinese chess!$
5 myblog is http://oldboy.blog.51cto.com$
6 $
7 oursite is http://www.etiantian.org$
8 $
9 myqq num is 49000448.$
10 $
11 not4900000448.$
12 mygod ,i am not oldbey,but OLDBOY!$
[root@oldboyedu-39-nb ~]# grep -n "^$" oldboy.txt
[root@oldboyedu-39-nb ~]# grep "." oldboy.txt
[root@oldboyedu-39-nb ~]# grep -o"." oldboy.txt
[root@oldboyedu-39-nb ~]# grep ".$" oldboy.txt
[root@oldboyedu-39-nb ~]# grep "\.$" oldboy.txt
I teach linux.
my qq num is 49000448.
not 4900000448.
去掉特殊含义 脱掉马甲
grep "\.$"oldboy.txt
####
* 前一个字符连续出现了0次或多次
连续出现0次 就是啥也没有
[root@oldboyedu-39-nb ~]# grep "0*" oldboy.txt
###*表示连续出现0次的问题(了解)
[root@oldboyedu-39-nb ~]# #连续出现0次 就是啥也没有
[root@oldboyedu-39-nb ~]# #"0*" 连续出现0次的时候 相当于什么都没有就是 ""
[root@oldboyedu-39-nb ~]# #会把整个文件都显示出来
[root@oldboyedu-39-nb ~]# grep "" oldboy.txt
[root@oldboyedu-39-nb ~]# grep -o "0*" oldboy.txt
用一个grep怎么找出以m开头并且以m结尾的行 ###=======stu*.txt 所有以stu开头以.txt结尾的文件
[root@oldboyedu-39-nb ~]# grep "^m.*m$" oldboy.txt
[root@oldboyedu-39-nb ~]# grep "^.*o" oldboy.txt
####贪婪 有多少钱拿到多少钱 能吃多少 吃多少 能匹配多少匹配多少
####表示所有的时候 .*
##正则表达式的贪婪性
[abc] 一次就找出 abc中的任何一个 a或b或c
grep "[abc]" oldboy.txt
grep -o "[abc]" oldboy.txt
grep "[abcdefghijklmnopqrstuvwxyz]" oldboy.txt
grep "[a-z]" oldboy.txt
grep "[A-Z]" oldboy.txt
grep "[0-9]" oldboy.txt
[root@oldboyedu-39-nb ~]# #找出文件中的大小写字母和数字?
[root@oldboyedu-39-nb ~]# grep"[a-zA-Z0-9]" oldboy.txt
[root@oldboyedu-39-nb ~]# grep "[a,b]"oldboy.txt
[root@oldboyedu-39-nb ~]# grep "[abc]"oldboy.txt
[root@oldboyedu-39-nb~]# grep "[^abc]" oldboy.txt
[root@oldboyedu-39-nb ~]# ##以
[root@oldboyedu-39-nb ~]# grep "^[mn]"oldboy.txt
[root@oldboyedu-39-nb~]# grep "^[^mn]" oldboy.txt
-v [^abc]
-v 排除某几行
[^abc] 排除a或b或c
基础正则表达式
^ $ .* [abc] [^abc]
本文出自 “heyong” 博客,请务必保留此出处http://heyong.blog.51cto.com/13121269/1954028
标签:linux正则表达式
原文地址:http://heyong.blog.51cto.com/13121269/1954028