• 时间: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命令集锦之·正则表达式的更多相关文章

  1. Linux命令集锦

    梳理常用的Linux命令 day1--cd命令 cd命令:(注意以下的命令,cd后均有一个空格) 1.进入盘符: cd f: 2.进入当前目录命令: cd . 3.进入指定文件夹(在进入确定盘符之后, ...

  2. 手把手 git建立仓库,远程推拉及常用git命令和部分Linux命令集锦

    方法一:直接在GitHub上建立一个项目,然后git clone (git address name): 此时已经建立好了一个git仓库: cd 文件夹 > 添加文件进去 >git add ...

  3. Linux命令集锦:crontab命令

    Linux crontab是用来定期执行程序的命令.当安装完成操作系统之后,默认便会启动此任务调度命令.crontab命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作. 而 ...

  4. Linux命令集锦:scp命令

    scp命令用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的,可能会稍微影响一下速度.当你服务器硬盘变为只读 read on ...

  5. Linux 命令集锦

    linux 一切从根开始,一切皆文件~ 让我们从一些命令开始了解吧 基本命令 man  command:manual:查看命令帮助手册 ls:list:查看当前文件夹下的内容 -a 查看所有内容,包含 ...

  6. Linux命令中使用正则表达式

    在使用grep.awk和sed命令时,需要使用正则表达式.比如我通过grep找代码编译结果中是否有错误.或者是否有我代码的错误.这里说下正则表达式基本的应用: • 匹配行首与行尾.• 匹配数据集.• ...

  7. 有用的linux命令集锦

    http://blog.csdn.net/hackerain/article/details/7946193 1. 查看内存使用情况 free -m 2. 查看系统版本信息 sudo lsb_rele ...

  8. linux命令集锦 基于centos7---优化linux的命令

    sed -i ‘s###g’ /etc/selinux/config  3个# 用于更改selinux配置文件:sed -i 's#SELINUX=enforcing#SELINUX=disabled ...

  9. 常用Linux命令集锦-ls命令

    1.命令格式:ls [选项] [目录名] 2.常用参数 -a:列出该目录下所有文件(包含隐藏文件). -A:列出该目录下除了隐藏文件的所有文件. -l:以行显示目录下的所有文件.输出信息从左到右分别是 ...

随机推荐

  1. DRF使用JWT进行用户认证

    1. 首先需要安装第三方依赖包 pip install djangorestframework-jwt 2. 在Django的settings文件中 配置全局的JWT认证类 REST_FRAMEWOR ...

  2. 第三篇 -- Go语言其他类型转String方法

    1. int转string // 法1: int转string num_int := 10 num_str_2 := fmt.Sprintf("%b", num_int) fmt. ...

  3. C++派生类的拷贝构造

    一. 概述 通过几个简单的实验,回顾下派生类中拷贝构造的相关知识. 环境:Centos7 64位, g++ 4.8.5 在继承中,构造器与析构器均没有被继承下来.拷贝构造,也是一种构造,也没有被继承下 ...

  4. ajax 提交序列化表单

    1.提交序列化表单+参数: var a = $.param({'address':address,'delivity':delivity,'payment':payment}) + '&' + ...

  5. python算法(2)兔子产子(斐波那切数列)

    兔子产子 1.问题描述 有一对兔子,从出生后的第3个月起每个月都生一对兔子.小兔子长到第3个月后每个月又生一对兔子,假设所有的兔子都不死,问30个月内每个月的兔子总对数为多少? 2.问题分析 兔子产子 ...

  6. Dubbo 实现一个Load Balance (用于灰度发布)

    Dubbo 可以实现的扩展很多, 官方文档在这: https://dubbo.apache.org/zh/docs/v2.7/dev/impls/ (太简单了....) 下面我们实现一个Load Ba ...

  7. 终拿字节Offer...动态规划复盘...

    大家好!我是 Johngo 呀! 和大家一起刷题不快不慢,没想到已经进行到了第二阶段,「动态规划」这部分题目很难,而且很不容易理解,目前我的题目做了一半,凭着之前对于「动态规划」的理解和最近做的题目做 ...

  8. 将几张图片合并为一张图片,返回byte数组

    需求:通过url数组下载图片,再竖直合成一张新的图片,具体java代码如下 1 /** 2 * 竖直合并图片 3 * 4 * @param urls 5 * @return 6 */ 7 public ...

  9. k8s入门你至少需要会哪些

    body { margin: 0; overflow: auto; font: normal 14px Verdana; background: rgba(255, 255, 255, 1); pad ...

  10. icmp介绍以及arp攻击

    目录 一.ip数据包格式 二.ICMP协议介绍 三.ARP协议介绍 四.ARP攻击原理 一.ip数据包格式 网络层的功能: 定义了基于ip协议的逻辑地址 连接不同的媒介类型 选择是数据通过网络的最佳途 ...