Shell学习之结合正则表达式与通配符的使用

目录

通配符

  • 正则表达式与通配符
  • 通配符
  • 通配符的使用

正则表达式

  • 正则表达式
  • 正则表达式的使用

通配符

正则表达式与通配符

正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、awk、sed等命令可以支持正则表达式。通配符用来匹配符合条件的文件名,通配符是完全匹配。ls、find、cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来就行匹配。

  

通配符

符号 作用
*   匹配任何字符串/文本,包括空字符串;*代表任意字符(0个或多个) ls file *
?   匹配任何一个字符(不在括号内时)?代表人意1个字符 ls file 0
[abcd]  匹配abcd中任何一个字符
[a-z]   表示范围a到z,表示范围的意思 []匹配中括号中任意一个字符 ls file 0
{..}    表示生成序列。以逗号分隔,且不能有空格
补充
[!abcd] 或[^abcd]表示非,表示不匹配括号里面的任何一个字符

  

通配符的使用

? 匹配任何一个字符

ls /bin/???ls /bin/??

 [abcd] 表示匹配中括号内任意一个字符就成

ls te[asb]t

 {}生成序列

touch {a..c}

匹配文件

ls [a-c]

利用{}备份数据库 

表示将ae复制一份叫做affff
cp a{e,fff}表示将ae做备份叫做ae.bak
cp a{e,e.bak}

  

!^表示非,取反

查找文件名里没有a和e的文件名ls [!ae]ls [^ae]

  

正则表达式

正则表达式

正则表达式的使用

"*" 前一个字符匹配0次,或者任意多次匹配至少包含有一个a的行
grep "aa*" test.txt匹配至少包含有两个a的行
grep "aaa*""."匹配除了换行符以外任意一个字符匹配所有内容
grep ".*" test.txt匹配在s与d之间一定有两个字符的单词
grep "s..d" test.txt匹配在s与d之间有任意字符
grep "s.*d" test.txt"^"匹配行首,"$"匹配行尾匹配空白行
grep "^$" test.txt匹配以大写字母M开头的行
grep "^M" test.txt匹配以小写字母m结尾的行
grep "m$" test.txt"[]'匹配中括号中指定的任意一个字符,只匹配一个字符
匹配s和i字母中,要不是a、要不是b
grep "s[ao]id" test.txt匹配任意一个数字
grep "[0-9]" test.txt匹配用小写字母开头的行
grep "^[a-z]" test.txt"[^]"匹配除中括号的字符以外的任意一个字符
匹配不用小写字母开头的行
grep "[^a-z]" test.txt匹配不用字母开头的行
grep "^[^a-zA-Z]" test.txt
"\" 转义符
匹配以点结尾的行
grep "\.$" test.txt"\{n\}" 表示其前面的字符恰好出现n次匹配a字母连续出现三次的字符串
grep "a\{3\}" test.txt匹配包含连续的三个数字的字符串
grep "[0-9]\{3\}" test.txt"\{n,\}" 表示其前面的字符出现不小于n次匹配最少用连续三个数字开头的行
grep "^[0-9]\{3,\}[a-z]" test.txt"\{n,m\}'匹配其前面的字符至少出现n次,最多出现m次匹配在字母s和字母i之间有最少一个a,最多三个a
grep "sa\{1,3\}i" test.txt

  

转载于:https://www.cnblogs.com/-wenli/p/10385468.html

Shell学习之结合正则表达式与通配符的使用(五)相关推荐

  1. Linux的冒号和波浪号用法,shell 学习三十五天---波浪号展开与通配符

    shell 学习三十五天---波浪号展开与通配符 shell 中两种与文件名相关的展开.第一种是波浪号展开,第二种是通配符展开式. 波浪号展开 如果命令行字符串的第一个字符为波浪号(~),或者变量指定 ...

  2. shell学习-基础篇

    shell学习-基础篇 Linux? 挺好的! shell是基础- 最近利用闲暇时间在 http://c.biancheng.net/ 网站上学习了shell基础篇,整理成博客以加深理解 文章目录 L ...

  3. linux 通配符 正则表达式 区别,linux 正则表达式和通配符

    linux 正则表达式和通配符 通配符用于查找文件 包含三种:  * ? [] * 代表任意个任意字符 ? 代表任意一个字符 [] 代表中括号中的一个字符 正则表达式(正则是包含匹配,只要包含就可以匹 ...

  4. Linux| |Shell学习

    Shell学习 # 符号 1. 初识 1.1 Shell定位 Shell就是用C编写的程序,是用户是用Linux的桥梁.Shell就是Linux内核的一个外壳,调用内核的接口 1.2 Shell和Ba ...

  5. shell学习笔记 (2)

    shell学习笔记 (2) ---china.pub.com  linux shell电子书学习笔记 第2章 使用find和xargs find pathname -options [-print - ...

  6. 【转】shell学习笔记(一)——学习目的性、特殊字符、运算符等

    1 学习shell的目的性 写之前我们先来搞清楚为什么要学shell,学习要有目的性 shell简单.灵活.高效,特别适合处理一些系统管理方面的小问题 shell可以实现自动化管理,让系统管理员的工作 ...

  7. ”*“在正则表达式和通配符的应用

    1. sed -n '/^12:3*/,/^13:3*/p'  a.log 这个截取的时间段是12:00到13:00(刚开始我以为这个截取的时间段是12点30到13点30的,因为我把*当成通配符了,q ...

  8. linux 正则表达式和通配符

    linux 正则表达式和通配符 通配符用于查找文件 包含三种:  * ? [] * 代表任意个任意字符 ? 代表任意一个字符 [] 代表中括号中的一个字符 正则表达式(正则是包含匹配,只要包含就可以匹 ...

  9. Python学习:day21正则表达式

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 传送门: day01基础知识 day02知识分类 day03 ...

最新文章

  1. 动态取得当前程序的版本号
  2. 三, for循环----文件对象-----函数基础------模块基础
  3. SAP Fiori Launchpad里home按钮的实现原理分析
  4. hashtable允许null键和值吗_MySQL默认值选型是空,还是 NULL-爱可生
  5. [Leedcode][JAVA][第102题][二叉树的层序遍历][递归][迭代][BFS]
  6. 【转】%~dp0是什么意思
  7. hdu1166 经典线段入门
  8. 《梦断代码》随笔第2篇
  9. 浅谈内联元素inline
  10. 网络嗅探器c语言代码,基于C 网络嗅探器的设计与实现-精品.doc
  11. 汽车振动响应分析-机械阻抗法(含机械网络图,附程序)
  12. php 倒计时插件下载,jQuery自适应倒计时插件
  13. ubuntu16.04登录后只有蓝色背景解决方法
  14. 计算圆周率可以根据公式如下:请利用Python提供的itertools模块,我们来计算这个序列的前N项和——python
  15. [论文阅读] Facial Expression Recognition Using Residual Masking Network
  16. Centos7自动挂载Windows中的NTFS 分区
  17. schedule问题
  18. 菜狗的reverse学习——攻防世界xxxorrr
  19. 【前端】html综合案例:圣诞节的那些事、小说排行榜案例、注册页面
  20. C++:shared_ptr简介以及常见问题

热门文章

  1. C语言 vprintf 函数和 printf 函数区别 - C语言零基础入门教程
  2. java定时器 并发_【java多线程与并发库】— 定时器的应用 | 学步园
  3. linux可以用dos命令是什么意思,Linux系统常用命令与DOS命令的类似之处和本质区别各是什么?...
  4. java按钮退出_java – 如何在此程序中添加退出按钮?怎么样“清楚”?
  5. JAVA如何隐藏异常堆栈_java – 如何在控制台上停止打印异常堆栈跟踪?
  6. bellman ford java_Java C 实现Bellman-ford算法
  7. 双百双新产业项目是什么_投资380亿,广西38个“双百双新”产业项目开竣工
  8. html5怎么改为vue_Vue实战——编程式导航打开新窗口,登录状态本地存储
  9. python django restful框架_Django RESTful API 实例带你快速上手开发
  10. 计算机四级计算机组成与接口总结,计算机等级测验四级计算机组成与接口.docx...