正则表达式基础以及grep的简单使用

正则表达式基础以及grep的简单使用

 

1,定义

正则表达式是你所定义的模式模板,Linux可以用它来过滤文本。Linux工具(比如grep、sed、gawk)能够在处理数据时使用正则表达式对数据进行模式匹配。如果数据匹配模式,它就会被接受并进一步处理;如果数据不匹配,它就会被滤掉。

正则表达式基础以及grep的简单使用

2,正则表达式的原则

(1)正则表达式模式都区分大小写。(2)可以使用空格,数字。(3)空格和其他字符并没有什么区别。

3,特殊字符                                                                  

包括        * [  ] ^ $ ( ) \ + ? | { }   

       要使用特殊字符,必须转义,在转义字符时,需要在它前面加个特殊字符来告诉正则表达式引擎应该将接下来的字符当做普通的文本字符,这个特殊符号就是反斜线(\)。

4,锚字符                                                                   

        ^ 行首锚定

        $ 行尾锚定

正则表达式基础以及grep的简单使用

       \b  \b 匹配词首和词尾  

        \<     \> 匹配词首和词尾    

正则表达式基础以及grep的简单使用

5,grep 基本用法

       -v    取反,找出不包含关键字的行

       -i     忽略字符大小写

       -n    显示匹配的行号

       -c    统计匹配到的行数

       -o    仅显示匹配到的字符串

       -w   匹配整个单词

       -A   n匹配的前n行

       -B    n 关键字的后n行

       -C    n 关键字的前后各n行

正则表达式基础以及grep的简单使用

       -e    实现多个选项的逻辑或关系

正则表达式基础以及grep的简单使用

       -E     egrep   支持扩展的正则表达式

         -F     fgrep   不支持正则表达式

6,字符匹配规则

       .             配任意单个字符

       [abc]       匹配a,b,c中单个字符

       [^abc]     匹配除a,b,c之外的字符

       [:alnum:] 匹配数字和字符

       [:alpha:]  匹配英文大小写字母a-z,A-Z

       [:lower:]  匹配小写字母

       [:upper:]  匹配大写字母

       [:space:]  匹配空格

       [:digit:]   匹配十进制数字

7,匹配次数

       *     匹配前面的字符任意次数,0至正无穷

       .*    匹配任意字符任意次数

       \?     匹配前面字符0次或者1次

       \+    匹配前面字符至少1次

       \{n\}       配前面字符n次

       \{m,n\}   匹配前面字符出现m至n次

       \{,n\}      匹配前面字符最多出现n次

       \{n,\}      匹配前面字符至少n次

8,扩展正则表达式egrep  

 次数匹配,和基本正则表达式类似,就是少了转义字符(\)

*     匹配前面字符任意次

?    匹配前面字符0次或1次

+     匹配前面字符1次或多次

{m} 匹配前面字符m 次

{m,n}匹配前面字符m到n 次

9,使用管道(|)

         管道允许你在检查数据时,用逻辑或方式指定正则表达式引擎要用的两个或者多个模式,如果任何一个模式匹配了数据文本,文本就通过,如果没有模式匹配,则数据流文本匹配失败。

正则表达式基础以及grep的简单使用

10,分组

 将匹配规则分成不同的组 使用 1 2 3..等数字去标识,便于后面使用同样规则的时候可以直接饮用

   \(root\)\+\1

   \(string1\+\(string2\)*\)

   \1  string1\+\(string2\)*

   \2  string2

eg.找出/etc/passwd用户名同shell名的行

   cat /etc/passwd | grep
“^\(\b[[:alnum:]]\+\b\):.*\1$”

   grep
“^\<\(.*\)\>.*\1$” /etc/passwd

cat /etc/passwd | egrep “^(\b[[:alnum:]]+\b):.*\1$”

正则表达式基础以及grep的简单使用

原创文章,作者:linux is not unix,如若转载,请注明出处:http://www.178linux.com/72968

赞 (1)
linux is not unixlinux is not unix
上一篇 2017-04-09 19:22
下一篇 2017-04-09 20:04

相关推荐

  • hbase安装配置(整合到hadoop)

    1.  快速单击安装 在单机安装Hbase的方法。会引导你通过shell创建一个表,插入一行,然后删除它,最后停止Hbase。只要10分钟就可以完成以下的操作。 1.1下载解压最新版本 选择一个 Apache 下载镜像:http://www.apache.org/dyn/closer.cgi/hbase/,下载 HBase Re…

    Linux干货 2015-04-13
  • 进程和计划任务

    进程概念 内核的功用:进程管理,文件系统,网络功能,内存管理,驱动程序,安全功能等 Process:运行中的程序的一个副本,是被载入内存的一个指令集和     进程ID(Process ID,PID)号码被用来标记各个进程     UID,GID和SELinux语境决定对文件系统…

    Linux干货 2016-09-13
  • 正则表达式基础

    正则表达式正则表达式    元字符:        .       点表示任意单个字符 最少一次        \w      匹配字母、数字、下划线、或汉字。        \s      匹配任意空白字符        \d      匹配数字        \b      匹配字符的开始或结束        ^       匹配首字符        $…

    Linux干货 2017-11-14
  • AB测试命令

    [root@chuangyuegou ~]# ab -n 10000 -c 49 http://192.168.0.99/index.html This is ApacheBench, Version 2.3 <$Revision: 655654 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd,…

    Linux干货 2016-12-05
  • 文本编辑三剑客之gawk

     awk 本章内容: awk介绍 awk基本用法 awk变量 awk格式化 awk操作符 awk条件判断 awk循环 awk数组 awk函数 调用系统命令 1.awk介绍 ★ Linux 文本处理工具三剑客:grep、sed、awk。其中grep是一种文本过滤工具;sed是文本行编辑器,而awk是一种报表生成器,就是对文件进行格式化处理的…

    Linux干货 2016-09-24
  • 第一次作业

    第一次作业 作业1 博客 作业2 echo -e "\033[49;31;4;5m*******\033[0m \n\033[49;32;4;5m ***** \033[0m \n\033[49;33;4;5m  ***  \033[0m \n\033[49;34;4;5m   *   \033[0m&quo…

    Linux干货 2016-08-03