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

 

 

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/536965.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mybatis源码阅读(四):核心接口4.2——Executor(上)

*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程 请关注微信公众号:HB荷包 一个能让你学习技术和赚钱方法的公众号,持续更…

接收xml参数_SpringBoot实战(二):接收xml请求

强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】最近在对接一个第三方系统,需要接收第三方系统的回调,而且格式为XML形式,之前自己一般接收的参数是Json形式,于是乎做个实验验证一下使用…

报错 插入更新_window如何解决mysql数据量过大导致的报错

window如何解决报错“The total number of locks exceeds the lock table size”第一大步,查看mysql配置信息在CMD中输入mysql -hlocalhost -uroot -p #如果设置了密码直接接在p 后面 show variables like %storage_engine%以下为结果可以看到InnoDB是MySQL的默认引…

Mybatis源码阅读(四):核心接口4.2——Executor(下)

*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程 请关注微信公众号:HB荷包 一个能让你学习技术和赚钱方法的公众号,持续更…

Mybatis源码阅读(五 ):接口层——SqlSession

*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程 请关注微信公众号:HB荷包 一个能让你学习技术和赚钱方法的公众号,持续更…

插入公式_一个小工具,彻底帮你搞定在Markdown中插入公式的问题

在编辑Markdown文档时,插入公式是一个挺麻烦的活儿。需要掌握LaTex语法。我自己看完语法后,直接放弃,这绝对是反人类的语法。(好吧,是我不会用...)但是,我相信你看了这篇文章后,绝对…

Mybatis源码阅读(一):Mybatis初始化1.2 —— 解析别名、插件、对象工厂、反射工具箱、环境

*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程 请关注微信公众号:HB荷包 一个能让你学习技术和赚钱方法的公众号,持续更…

Google 修改 Chrome API,防止隐身模式检测

开发四年只会写业务代码,分布式高并发都不会还做程序员? 在使用 Chrome 浏览网页时,某些网站会使用某种方法来确定访问者是否处于隐身模式,这是一种隐私泄漏行为。Google 目前正在考虑修改 Chrome 的相关 API,来杜绝…

Mybatis源码阅读(一):Mybatis初始化1.1 解析properties、settings

*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程 请关注微信公众号:HB荷包 一个能让你学习技术和赚钱方法的公众号,持续更…

JavaScript异步基础

唯一比不知道代码为什么崩溃更可怕的事情是,不知道为什么一开始它是工作的!在 ECMA 规范的最近几次版本里不断有新成员加入,尤其在处理异步的问题上,更是不断推陈出新。然而,我们在享受便利的同时,也应该了…

Flutter、ReactNative、uniapp对比

*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程 请关注微信公众号:HB荷包 一个能让你学习技术和赚钱方法的公众号,持续更…

多线程中ThreadLocal的使用

*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程 请关注微信公众号:HB荷包 一个能让你学习技术和赚钱方法的公众号,持续更…

注解版poi操作工具

*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程 请关注微信公众号:HB荷包 一个能让你学习技术和赚钱方法的公众号,持续更…

Kali Linux 2019.1 发布,Metasploit 更新到 5.0 版本

百度智能云 云生态狂欢季 热门云产品1折起>>> Kali Linux 2019.1 发布了,Kali 前身 BackTrack,它是一个基于 Debian 的 Linux 发行版,主要用于信息安全行业,其包含了一系列安全、渗透测试和取证工具。此版本 Linux 内核…

peewee mysql_scrapy中利用peewee插入Mysql

前两天老大布置一个任务,说爬下来的数据要存入数据库中,丢给我一个peewee,说用这个。当时的我两眼一抹黑,这是个什么东西呀,我知道scrapy的数据存入数据库是在pipelines中进行设置但是peewee是什么东西呢。经过两天不懈…

Java版数据结构与算法——线性表

*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程 请关注微信公众号:HB荷包 一个能让你学习技术和赚钱方法的公众号,持续更…

基于 CODING 的 Spring Boot 持续集成项目

本文作者:CODING 用户 - 廖石荣 持续集成的概念 持续集成(Continuous integration,简称 CI)是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每…

Mybatis组成部分

*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程 请关注微信公众号:HB荷包 一个能让你学习技术和赚钱方法的公众号,持续更…

一年java工作经验-面试总结

*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程 请关注微信公众号:HB荷包 一个能让你学习技术和赚钱方法的公众号,持续更…

linux mysql python包_03_mysql-python模块, linux环境下python2,python3的

---恢复内容开始---1、Python2 正常[rootIP ~]#pip install mysql-pythonDEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 wont be maintained after that date. A future version of pip will drop …