Linux命令集锦之·正则表达式
- 时间:2018-11-15 记录:byzqy
正则表达式与通配符:
正则表达式,用来在文件中匹配符合条件的字符串,正则是包含匹配。
grep、awk、sed 等命令可以支持正则表达式。
通配符,用来匹配符合条件的文件名,是完全匹配。
ls、find、cp 这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配了。
通配符:
*(星号),代表任意字符重复任意多次;
?(问号),代表任意字符重复一次;
[](中括号),代表一个字符即中括号中写的字符;
示例:在anaconda-ks.cfg这个文件当中搜索size这个字符串
$ grep "size" anaconda-ks.cfg
注意:正则表达式中有一些符号和通配符一样,但是含义完全不同。
基础正则表达式:

示例:星号(*)前面一个字符匹配0次,或任意多次
$ grep "a*" test_rule.txt
# 匹配所有内容,包括空白行;
$ grep "aa*" test_rule.txt
# 匹配至少包含有一个a的行;
$ prep "aaa*" test_rule.txt
# 匹配最少包含两个连续a的字符串;
$ grep "aaaaa*" test_rule.txt
# 匹配最少包含4个连续a的字符串。
示例:点号(.)匹配除了换行符外的任意一个字符
$ grep "s..d" test_rule.txt
# “s..d”会匹配在s和d这两个字母之间一定有两个字母的单词;
$ grep "s.*d" test_rule.txt
# 匹配在s和d字母之间有任意字符;
$ grep ".*" test_rule.txt
# 匹配所有内容。
示例:尖号(^)匹配行首,美元符($)匹配行尾
$ grep "^M" test_rule.txt
# 匹配以大写“M”开头的行;
$ grep “n$” test_rule.txt
# 匹配以小写“n”结尾的行;
$ grep -n "^$" test_rule.txt
# 会匹配空白行。(-n是grep的参数,表示匹配结果中显示行号)
示例:中括号([])匹配中括号中指定的任意一个字符,只匹配一个人字符
$ grep "s[ao]id" test_rule.txt
# 匹配s和i字母中间,要么是a,要么是o;
$ grep "[0-9]" test_rule.txt
# 匹配任意一个数字;
$ grep "^[a-z]" test_rule.txt
#匹配用小写字母开头的行。
示例:中括号中加尖号([^])匹配除中括号指定的字符以外的任意一个字符
$ grep "^[^a-z]" test_rule.txt
# 匹配不用小写字母开头的行;
$ grep "^[^a-zA-Z]" test_rule.txt
# 匹配不用字母开头的行。
示例:转义符(\)让特殊符号丧失它的特殊含义,回归到普通字符本身
$ grep "\.$" test_rule.txt
# 匹配使用 “.”结尾的行。
示例:“\{n\}”表示其前面的字符恰好出现n次
$ grep "a\{3\}" test_rule.txt
# 匹配a字母连续出现三次的字符串;
$ grep "[0-9]\{3\}" test_rule.txt
# 匹配包含连续的三个数字的字符串。
示例:“\{n,\}”表示其前面的字符出现不小于n次
$ grep "^[0-9]\{3,\}[a-z]" test_rule.txt
# 匹配最少用连续三个数字开头的行。
示例:“\{n,m\}”表示匹配其前面的字符至少出现n次,最多出现m次。
$ grep "sa\{1,3\}i" test_rule.txt
# 匹配在字母s和字母i之间最少有一个a,最多有3个a。
--the end--
Linux命令集锦之·正则表达式的更多相关文章
- Linux命令集锦
梳理常用的Linux命令 day1--cd命令 cd命令:(注意以下的命令,cd后均有一个空格) 1.进入盘符: cd f: 2.进入当前目录命令: cd . 3.进入指定文件夹(在进入确定盘符之后, ...
- 手把手 git建立仓库,远程推拉及常用git命令和部分Linux命令集锦
方法一:直接在GitHub上建立一个项目,然后git clone (git address name): 此时已经建立好了一个git仓库: cd 文件夹 > 添加文件进去 >git add ...
- Linux命令集锦:crontab命令
Linux crontab是用来定期执行程序的命令.当安装完成操作系统之后,默认便会启动此任务调度命令.crontab命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作. 而 ...
- Linux命令集锦:scp命令
scp命令用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的,可能会稍微影响一下速度.当你服务器硬盘变为只读 read on ...
- Linux 命令集锦
linux 一切从根开始,一切皆文件~ 让我们从一些命令开始了解吧 基本命令 man command:manual:查看命令帮助手册 ls:list:查看当前文件夹下的内容 -a 查看所有内容,包含 ...
- Linux命令中使用正则表达式
在使用grep.awk和sed命令时,需要使用正则表达式.比如我通过grep找代码编译结果中是否有错误.或者是否有我代码的错误.这里说下正则表达式基本的应用: • 匹配行首与行尾.• 匹配数据集.• ...
- 有用的linux命令集锦
http://blog.csdn.net/hackerain/article/details/7946193 1. 查看内存使用情况 free -m 2. 查看系统版本信息 sudo lsb_rele ...
- linux命令集锦 基于centos7---优化linux的命令
sed -i ‘s###g’ /etc/selinux/config 3个# 用于更改selinux配置文件:sed -i 's#SELINUX=enforcing#SELINUX=disabled ...
- 常用Linux命令集锦-ls命令
1.命令格式:ls [选项] [目录名] 2.常用参数 -a:列出该目录下所有文件(包含隐藏文件). -A:列出该目录下除了隐藏文件的所有文件. -l:以行显示目录下的所有文件.输出信息从左到右分别是 ...
随机推荐
- kali操作系统添加中文输入法
今天一通操作真心累啊.想安装搜狗输入法,百度搜索了好多 三步走:https://blog.csdn.net/qq_44110340/article/details/101382732 一顿操作猛如虎, ...
- 算法优化---素数(质数)(Java版)
4.1优化算法-----输出素数 最简代码请直接移步文末 原代码:https://www.cnblogs.com/Tianhaoblog/p/15077840.html 对应优化如下 优化一:在遍历内 ...
- anyRTC 6月SDK更新迭代
anyRTC 6月更新迭代,macOS新增屏幕 ID 进行屏幕共享功能,让共享更高效简单:此外解决了视频的宽高不是16:9导致共享内容缺失的问题,同时对音视频模块,推流组件等多项功能进行了优化改进. ...
- 阿里云RocketMQ定时/延迟消息队列实现
新的阅读体验:http://www.zhouhong.icu/post/157 一.业务需求 需要实现一个提前二十分钟通知用户去做某件事的一个业务,拿到这个业务首先想到的最简单得方法就是使用Redis ...
- 剑指 Offer 39. 数组中出现次数超过一半的数字
剑指 Offer 39. 数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字. 你可以假设数组是非空的,并且给定的数组总是存在多数元素. 示例 1: 输入: [ ...
- 小白学习vue第五天(理解使用组件开发,组件第一弹)
组件怎么从创建到使用? 第一步创建组件构造器对象 感觉个人理解就是创建一个模板,和创建MongoDB数据模板相似 const cpnC = Vue.extend({ template: ` <d ...
- Windows协议 LDAP篇 - Actite Directory
LDAP简介 先说下ldap,轻量目录访问协议.LDAP就是设计用来访问目录数据库的一个协议.也就是为了能访问目录数据库,ldap是其中一种协议 LDAP的基本模型 目录树:在一个目录服务系统中,整个 ...
- 几个垃圾XSS
遇见帅比厂商就离谱.... 这个厂商就挖了几个反射XSS,幸亏没有浪费太多时间 嗯 有的有waf.有的没有就离谱 可以看见可以解析的,但是他的这个站,遇见关键函数就自己跳转了.然后去寻找下别的标签fu ...
- Spring学习笔记--面向切面编程(AOP)
什么是AOP AOP(Aspect Oriented Programming),意为面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的 ...
- Java自定义注解使用和详解
前言 我们在做开发springboot 项目时候会遇到各种各样注解,使用各种各样注解,极大的简便了我们开发流程,方式,从JDK5开始支持 注解是Java语言的一种强大的功能 可以理解为代码上的特殊标记 ...