正则表达式是包含匹配,通配符是完全匹配

基础正则表达式

test.txt示例文件

1
2
3
4
5
6
7
8
9
10
11
12
Mr. James said:
he was the honest man in Companyy.
123despire him.
 
But since Miss.Mary came,
she never saaaid thoes words.
5555nice!
 
because ,actuaaaaally,
Mr.James is the most honest man!
 
Later,Miss Mary soid her hot body.

1、*符号的使用(“ *”前一个字符匹配0次,或任意多次)
1
2
3
4
5
6
7
8
9
grep "a*" test_rule.txt
#匹配所有内容,包括空白行
grep "aa*" test_rule.txt
#匹配至少包含有一个a的行
grep "aaa*" test_rule.txt
匹配最少包含两个连续a的字符串
grep "aaaaa*" test_rule.txt
#则会匹配最少包含四个个连续a的字符串

2、.符号的使用(“ .” 匹配除了换行符外任意一个字符)

1
2
3
4
5
6
7
grep "s..d" test_rule.txt
#“ s..d”会匹配在s和d这两个字母之间一定有两个字符的单词
grep "s.*d" test_rule.txt
#匹配在s和d字母之间有任意字符
grep ".*" test_rule.txt
#匹配所有内容

3、“ ^”匹配行首,“ $”匹配行尾

1
2
3
4
5
6
grep "^M" test_rule.txt
#匹配以大写“ M”开头的行
grep "n$" test_rule.txt
#匹配以小写“ n”结尾的行
grep -n "^$" test_rule.txt
#会匹配空白行

4、“ []” 匹配中括号中指定的任意一个字符,只匹配一个字符

1
2
3
4
5
6
grep "s[ao]id" test_rule.txt
#匹配s和i字母中,要不是a、要不是o
grep "[0-9]" test_rule.txt
#匹配任意一个数字
grep "^[a-z]" test_rule.txt
#匹配用小写字母开头的行

5、“ [^]” 匹配除中括号的字符以外的任意一个字符

1
2
3
4
grep "^[^a-z]" test_rule.txt
#匹配不用小写字母开头的行
grep "^[^a-zA-Z]" test_rule.txt
#匹配不用字母开头的行

6、“ \” 转义符

1
2
grep "\.$" test_rule.txt
#匹配使用“ .”结尾的行

7、“ \{n\}”表示其前面的字符恰好出现n次

1
2
3
4
grep "a\{3\}" test_rule.txt
#匹配a字母连续出现三次的字符串
grep "[0-9]\{3\}" test_rule.txt
#匹配包含连续的三个数字的字符串

8、“ \{n,\}”表示其前面的字符出现不小于n次

1
2
grep "^[0-9]\{3,\}[a-z]" test_rule.txt
#匹配最少用连续三个数字开头的行

9、“ \{n,m\}”匹配其前面的字符至少出现n次,最多出现m次

1
2
grep "sa\{1,3\}i" test_rule.txt
#匹配在字母s和字母i之间有最少一个a,最多三个a

Shell命令_正则表达式的更多相关文章

  1. Shell命令_文件系统常用命令df、du

    一.df(文件系统查看命令) [root@localhost ~]# df [选项] [挂载点] 选项: -a 显示所有的文件系统信息,包括特殊文件系统,如 /proc. /sysfs -h 使用习惯 ...

  2. * 和 ?在 shell 命令行中与在正则表达式中的区别

    Linux 正则表达式 你有没有想过,在 shell 命令行中的 *,?和正则表达式中的*,?是否一样? 自打好多年前接触 DOS,就知道了* 和?这两个通配符(Wildcard),象 dir *.* ...

  3. Linux学习——shell编程之正则表达式和字符处理命令

    shell编程之正则表达式 一 正则表达式 1 什么是正则表达式 正则表达式用于描述字符排列和匹配模式的一种语法规则.它主要用于字符串的模式分隔.匹配.查找及替换操作. 2 shell编程之正则表达式 ...

  4. 正则表达式小结,数据预处理中常用的shell命令

    数据预处理中,这部分命令非常有用. 不需要编写代码,直接通过shell脚本通常就能修改文件格式.有时候sed和awk联合几乎能实现所有功能. 管道命令 | 重定向命令>,2>,>&g ...

  5. 任督二脉之Shell中的正则表达式

    VBird说学习Linux,掌握了Shell和正则就相当于打通了任督二脉,此后能力的成长才会突飞猛进. Shell的基础学习之前已经总结了一篇博客:http://www.cnblogs.com/jyz ...

  6. 数据分析常用shell命令

    目录 0.vim编辑器 1.awk命令(重要) 1.1 基本语法 1.2 基本用法 1.3 运算符 1.4 内建变量 1.5 其他 1.6 awk是一门变成语言,支持条件判断.数组.循环等功能.所以我 ...

  7. Shell命令和流程控制

    Shell命令和流程控制 在shell脚本中可以使用三类命令: 1)Unix 命令: 虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令.这些命令通常是用来进行文件和文字 ...

  8. Android Java执行Shell命令

    最新内容建议直接访问原文:http://www.trinea.cn/android/android-java-execute-shell-commands/ 主要介绍Android或Java应用中如何 ...

  9. bash shell命令(2)

    在上篇<bash shell命令(1)>中,介绍了几种简单的linux shell命令,今天继续介绍bash shell命令 本文地址:http://www.cnblogs.com/arc ...

随机推荐

  1. WPF学习笔记(一):数据绑定之元素到元素绑定

    前言 作为一只菜鸟,之前学了一段时间的WPF,但是没有总结,过了一学期发现好多东西都忘记了,很多东西还是需要记下来,以备后续复习. 数据绑定在事件中应用非常广泛,可以有效地减少代码量,那么什么是数据绑 ...

  2. PHP之图像处理

    PHP中提供了一些对图像进行编辑处理的函数,其中最为典型的应用为随机图形验证码.图片水印以及数据统计中饼状图和柱状图的生成等 PHP中有的图形函数可以直接使用,但多数需要在安装了GD2函数库后才能使用 ...

  3. IT菜鸟的3(for循环+分支语句)

    第三天学的东西感觉已经不是很容易能想通了,感觉头懵懵的,难道这就是是文科生的障碍吗,我不相信,坚持!相信自己一定会做好! 1:for循环!(1)循环四要素:初始条件,循环条件,循环体,状态改变for( ...

  4. Oracle 使用MERGE INTO 语句更新数据

    /*Merge into 详细介绍MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句.通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,连接条件匹配 ...

  5. nginx应用总结(2)--突破高并发的性能优化

    在日常的运维工作中,经常会用到nginx服务,也时常会碰到nginx因高并发导致的性能瓶颈问题.今天这里简单梳理下nginx性能优化的配置(仅仅依据本人的实战经验而述,如有不妥,敬请指出~) 一.这里 ...

  6. Kali linux渗透测试常用工具汇总2-渗透攻击

    渗透攻击的思路一般是扫描漏洞,然后利用不同的漏洞,才有针对的渗透攻击. 漏洞扫描的工具有Nessus,该工具可同时在本地或远端遥控,对系统的漏洞分析扫描.Nessus通过新建扫描策略,并添加对应的插件 ...

  7. Tomcat 5.5启动需要用户名密码的解决方案

    我在使用Tomcat的时候碰到这样的问题,然后在csdn里面找到方法,然后保存一份,原帖地址:Tomcat用户名密码,8#原来的tomcat-user.xml是  <?xml version=& ...

  8. 64位MicrosoftOfficeWord加载EndnoteX7

    来源:http://jingyan.baidu.com/article/fcb5aff7a08036edaa4a71d0.html Win10 64bit 安装 Office2016 64bit 加载 ...

  9. IE6 P标签下DIV无法inline-block

    IE6 P标签下的DIV标签无法inline-block,使其触发了hasLayout属性再用csshack 使其inline还是不行,始终要换行 解决:把div标签替换成非div标签,比如span等 ...

  10. Linux设置环境变量(解决许多命令找不到)

    不知道服务器被谁给改坏了,许多命令都不能使用找不到,但是可以在/usr/bin/,/usr/local/bin等里面找到源程序,当时首先想到的就是环境变量,因为Windows在设置了环境变量之后就可以 ...