美文网首页
Linux59期day16

Linux59期day16

作者: A宽宽 | 来源:发表于2019-04-17 15:43 被阅读0次

正则表达式(Regular Expression RE)

什么是正则表达式:

发明一套符号,不同的符号有不同的含义,方便我们在文件中查找/过滤内容

正则表达式分类:

基础正则 Basic RE

^    $    ^$   .    *     .*     []    [^]

扩展正则 Extended RE ERE

+   |   ()   {}    ?

通配符与正则的区别?

通配符:方便我们查找文件 Linux下面大部分命令支持
正则: 方便我们进行过滤(在文件中找内容) Linux三剑客 开发语言 python PHP JAVA GO

使用正则注意事项:注意中文符号 给grep egrep加上颜色

基础正则:

1.^ 以...开头的行 ^m ^oldboy

  1. $ 以...结尾的行 m$
    cat -A显示出文件中所有隐藏符号 每一行结尾==加上$
  2. ^$空行 这一行中什么都没有
    排除空行 grep -v '^$' oldboy.txt
  3. . (点)任意一个字符(单个)不会匹配出空行 grep -o 显示grep每次过滤出什么内容(匹配到什么内容)
    显示grep执行过程
  4. \ 转义字符 去掉符号原有的特殊含义
    转义字符系列 \n 回车换行 \t 按tab
    把oldboy.txt 回车替换为\t tr '\n' '\t' <oldboy.txt
    echo -e 让echo支持转义字符
[root@oldboy59 ~/oldboy]# echo -e 'as\nda\nsda'
as
da
sda

echo -n 不输出每行结尾的回车

6.* 前一个字符连续出现0次或0次以上==重复(repetition)
00000连续出现的0
oldboy 连续出现在的字母

  1. .所有任意字符
    特点:贪婪性匹配能匹配多少就匹配多少 来者不拒,正则表达式表示多有(.
    )或者是连续出现的时候 会产生贪婪
    8.[] [abc] 相当于一个字符,匹配到a或b或c
[root@oldboy59 ~/oldboy]# grep '[a-z,A-Z]' oldboy.txt 
 am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com 
our size is http://blog.oldboyedu.com 
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
[root@oldboy59 ~/oldboy]# grep '[a-zA-Z]' oldboy.txt 
 am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com 
our size is http://blog.oldboyedu.com 
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY! 
[root@oldboy59 ~/oldboy]# grep '[0-Z]' oldboy.txt 
 am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com 
our size is http://blog.oldboyedu.com 
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY! 

显示以m或n或o开头的行

[root@oldboy59 ~/oldboy]# grep '^[mno]' oldboy.txt 
my blog is http://oldboy.blog.51cto.com 
our size is http://blog.oldboyedu.com 
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY! 

以m或n或点结尾的行

[root@oldboy59 ~/oldboy]# grep '[mn.]$' oldboy.txt 
I teach linux.
not 4900000448.

显示以m或n或o开头的并且以m或n或点结尾的行

[root@oldboy59 ~/oldboy]# grep '^[mno].*[mn.]$' oldboy.txt 
not 4900000448.

9.[^] [^abc]不要a或不要b或不要c

[root@oldboy59 ~/oldboy]# grep '[^abc]' oldboy.txt 
 am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com 
our size is http://blog.oldboyedu.com 
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY! 

[^abc] VS grep -v

[^abc]不要a或b或c
grep -v 排除某一行

扩展正则:

1.+前一个字符连续出现一次或多次,一般就是与[]一起使用
[root@oldboy59 ~/oldboy]# egrep '[a-Z]+' oldboy.txt
am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!

  1. | 或者
    [root@oldboy59 ~/oldboy]# egrep 'oldboy|linux' oldboy.txt
    am oldboy teacher!
    I teach linux.
    my blog is http://oldboy.blog.51cto.com
    our size is http://blog.oldboyedu.com
    3.() 被括起来的内容相当于一个整体
    用来表示后向引用(反向引用)
    4.{} 连续出现 b{m,n} 前一个字符连续出现至少m次,至多n次
[root@oldboy59 ~/oldboy]# egrep '0{2,3}' oldboy.txt 
my qq is 49000448
not 4900000448.

b{m}前一个字符连续出现m次
b{m,} 前一个字符至少出现m次
b{,n} 前一个字符最多出现n次
5.? 前一个字符出现0次或1次
正则支持命令 grep/sed/awk
扩展正则支持命令grep -E/egrep 或 sed -r 或 awk

相关文章

  • Linux59期day16

    正则表达式(Regular Expression RE) 什么是正则表达式: 发明一套符号,不同的符号有不同的...

  • Linux59期day12

    创建1个新目录他的硬链接数是2? 为何? 在这个目录下面创建1个新目录 /lidao/alex/ lidao目录...

  • Linux59期day05

    了解:/oldboy和/oldboy/ 区别?大部分命令是一样的./oldboy 表示oldboy目录和下面的内...

  • Linux59期day04

    Linux基础操作与命令 快捷键 Ctrl+c 取消当前操作 Ctrl+l 清屏 Ctrl+a 光标移到行首 C...

  • Linux59期day08

    1、vim编辑器的快捷键光标移动操作: l:光标向右移动h:光标向左移动j:光标向下移动k:光标向上移动gg或1G...

  • Linux59期day09

    vim 故障 1.vim 执行过程 2.故障产生原因 a.同时打开一个文件b.之前的文件没有正常保存退出导致的 3...

  • Linux59期day10

    文件类型: 扩展名:.avi .txt .log .shWindows:系统根据不同的扩展名,区分不...

  • Linux59期day03

    什么是救援模式? 解决故障 root密码忘记\服务器无法开机 linux磁盘分区方案 1.通用-数据不重要的时候...

  • Linux59期day02

    什么是操作系统? 人与硬件设备的中介/桥梁 Linux操作系统的组成? 外围应用程序 命令解释器 shell 系...

  • Linux59期day06

    根下/etc目录作用: /etc: 网卡配置文件 /etc/sysconfig/network-scripts/i...

网友评论

      本文标题:Linux59期day16

      本文链接:https://www.haomeiwen.com/subject/wtxgwqtx.html