linux 通配符匹配数字,RHEL7 学习笔记(17) 通配符和正则表达式-程序员宅基地

技术标签: linux 通配符匹配数字  

RHEL7 学习笔记(17) 通配符和正则表达式

这一节学习了通配符和正则表达式在grep里面使用。

首先看看Shell下的通配符。

最最常见的符号如下所示:

数字 [0-9]

字母 [a-z]

非字母[^a-z]

非数字[^0-9]

任意符号 *

转义符号 \

大写 [[:upper:]]

小写 [[:lower:]]

数字 [[:digit:]]

字母 [[:alpha:]]

数字+字母[[:alnum:]]

空格 [[:blank:]]

看看例子

例1

第一个列出了数字和字母开头的文件

第二个列出了数字和-开头的文件

第三个列出来了数字开头的文件

77fd8ffa2dbeab66729d32ddc0016e3c.png

例2

如果直接查找vsftp* 没问题;但是如果在当前目录下创建了匹配这个格式的文件,那得到的结果就是当前目录的文件而不是软件包了,因为yum是shell 的子进程,这个* 通配符在shell就被解析了;可以加引号或者转移符号来避免误会

e74571e06ce7613fccd449bb406e054a.png

85bd99538305a9a9229c4ab475cd84a2.png

下面来看看正则表达式在grep里面的使用

grep之前已经学习过了,简单的表达形式是 【grep 选项 字符串 文件】

选项可以是-n 行号,-v 反向选择,-a 文本文件,-i 忽略大小写

通配符在grep一样可以使用,不过有的符号意思发生了改变。

例3

先看个基本的例子,反向搜索没有#的行,如果不加引号,他会被shell直接解析,而不是在grep中进行解析

60e9b817a34c75cac3833b04e52ed4c8.png

^符号如果是在方括号里面,表示否定; 如果是单引号里面表示这个字符串是以^后面的字符开头的

对比如下所示

6f719435da1232b748effdece327a236.png

如果表示结尾的字符,可以用'$', 如果直接输入‘^$', 则表示空行

例4

7a9068966ce3e58cdbe7f61d3c766f65.png

空行

c85d0606592bb2e6a97967350e4cb792.png

如何表示一个或者多个字符?我们可以用. (小圆点)来表示任意一个符号,表示这个位置就有个符号,随便是啥都行;* (星号) 可以表示有0个或者多个重复的符号,比如to* 可以表示的格式是tXXXXXXXX,toXXXXX,tooXXXXXXX ...都是可以的

例5 比如 to* 和 t.m的区别

36976c9108f80ca28fa5aa6afc5b9c59.png

除了 小圆点和星号,我们还可以使用?表示0或1次; +表示1次以上, {m,n}表示表达式出现至少m次,最多n次;这需要使用扩展正则表达式-P或者-E,否则直接运行无效

例 6  直接运行没有结果,-P用perl的方式来解析,就可以了 {3}表示 o 出现3次,{2,4}表示出现了2次到4次

2177794a066217d15db101e7682c0254.png

to.?m 里面 . 表示任意一个字符,?表示这个任意字符出现了0次或者1次,因此满足 tom, toXm 的字符串都是可以的

5e2ba226953ffa7f506e1be18a159f2d.png

类似的 to.+m里面 .表示任意字符,+表示这个字符出现了1次或者多次,那么匹配的字符串是toXm,toXXm,toXXXm,换句话说满足to开头,m结尾的字符串都是可以的

c841d7aff0031a74dd950f68d537e1d2.png

最后做个练习,如何只输出ifconfig里面ip的结果,不准用awk

这个能够匹配的写法太多了,豆子自己写了个比较复杂的

4679dd05d2d0804d9693785095299312.png

下面是老师的写法

3a27704f38b7588f063e06359190377c.png

0b1331709591d260c1c78e86d0c51c18.png

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30471013/article/details/116973791

智能推荐

安装Keras,tensorflow,并将虚拟环境添加到jupyter notebook_scipy库怎么导入jupyter-程序员宅基地

文章浏览阅读4.5k次,点赞8次,收藏69次。安装Keras,tensorflow,并将虚拟环境添加到jupyter notebook_scipy库怎么导入jupyter

ARM开发软件ADS教程_arm.developer.suite使用教程-程序员宅基地

文章浏览阅读4.7k次。ARM开发软件ADS教程 ADS(ARM Developer Suite)是ARM公司推出ARM集成开发环境,操作简单方便,获得广大开发人员的青睐。下面使用ADS v1.2做一个实例教程,帮助大家学会使用ADS编写程序和仿真调试。(使用汇编语言) 首先:下载ADS v1.2版本(英文版)并安装好ADS。安装好ADS之后可以看到开始菜单---所有程序---ARM Developer Suit_arm.developer.suite使用教程

Python的datetime_python 手写datetime-程序员宅基地

文章浏览阅读4.6k次。Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime。time模块我在之前的文章已经有所介绍,它提供的接口与C标准库time.h基本一致。相比于time模块,datetime模块的接口则更直观、更容易调用。今天就来讲讲datetime模块。 datetime模块定义了两个常量:datetime.MINYEAR和datetime.MAXYEAR,分_python 手写datetime

利用Excel数据爬虫_excel爬虫-程序员宅基地

文章浏览阅读2.4k次,点赞2次,收藏8次。URL部分和URL预览填写为目标(需要爬取数据的网址)的URL地址。第三部找到User-Agent的value复制。就可以在Excel表格里看到想要的数据了。1、在Excel里数据里打开自网站。命令超时选择1分钟即可。HTTP请求标头参数。_excel爬虫

Azure OpenAI:使用Completion/ChatCompletion实现更多可能合集(持续更新)_chatcompletion azure-程序员宅基地

文章浏览阅读198次。不过类似的提示词在GPT4模型下直接使用并不能产生类似的结果,GPT4使用的是ChatCompletion,可以在System Message里或者JSON格式的User Message里带更多的上下文信息过去,在这个案例里GPT4过于智能的将两个表进行了交叉查询,看到网上有其他开发人员使用了JSON解析的方法来拼出SQL文,有机会可以尝试。###创建SQL查询问题:Dear, 210430预计什么时间有货可发?###创建SQL查询问题:Dear, 210430预计什么时间有货可发?_chatcompletion azure

oracle 磁盘空间满后导致无法连接/登陆/使用/启动_oracle的链接数占满sqlplus无法登陆进去怎么处理的-程序员宅基地

文章浏览阅读8.3k次,点赞2次,收藏19次。某天登陆服务器后连接oracle数据库时,突然提示磁盘控件不足,导致sqlplus 登陆失败,提示如下图: 通过命令 df -lh /opt/oracle查看oracle安装目录所在磁盘空间,发现确实已使用100%,如下图: oracle安装目录所在磁盘整个大小才20G,为了一劳永逸,果断准备将oracle系统表空间的数据文件迁移到其他磁盘。此时处理思路应该是先关闭oracle服务,然..._oracle的链接数占满sqlplus无法登陆进去怎么处理的

随便推点

《Qt for Symbian》翻译系列之七:第二章 开始(1)_qt manual proxy configuration-程序员宅基地

文章浏览阅读3.8k次。第二章开 始本章主要介绍应用于Symbian平台的QT开发工具。对于Symbian平台的新手,本章首先通过逐步介绍所需的开发工具及其安装指南进行切入。然后介绍如何在仿真器和移动电话上利用Qt for Symbian创建并运行“Hello World”应用。如果已经有了Symbian开发环境,而且熟悉工具及应用的构建过程,作为对某些SDK版本的补充,在进入2.1.7章节关注Qt for Symbian SDK的安装和介绍之前,建议快速浏览本章的第一部分。注意,本章中某些较长的下载链接利用URL缩_qt manual proxy configuration

前端 - Map对象详解_前端map-程序员宅基地

文章浏览阅读6.8k次。Map对象属性、Map对象和普通对象的区别、Map对象和WeakMap对象的区别_前端map

推荐系统中的常用算法——序列深度匹配SDM_sdm算法-程序员宅基地

文章浏览阅读2.8k次,点赞3次,收藏11次。1. 概述2. 算法原理参考文献Lv F , Jin T , Yu C , et al. SDM: Sequential Deep Matching Model for Online Large-scale Recommender System[J]. 2019.[深度模型] 阿里大规模深度召回序列模型SDMSDM:用户长短期兴趣召回模型..._sdm算法

计算机毕业设计 SSM与Vue的勤工助学管理系统(源码+论文)_ssm+vue勤工助学-程序员宅基地

文章浏览阅读199次。Hi,各位同学好呀,这里是M学姐!今天向大家分享一个今年(2022)最新完成的毕业设计项目作品,【基于SSM的勤工助学管理系统】学姐根据实现的难度和等级对项目进行评分(最低0分,满分5分)难度系数:3分工作量:5分创新点:3分界面美化:5分界面美化的补充说明:使用vue的基本都能达到5分本项目完成于2022年6月份,包含内容 : 源码 + 论文 + 答辩PPT在开放的互联网平台面前,勤工助学管理系统的信息管理面临着巨大的挑战。传统的管理模式局限于简单数据的管理,无法适应不断变化的市场格局。_ssm+vue勤工助学

分布式锁原理与实现--Redis分布式锁和ZooKeeper分布式锁-程序员宅基地

文章浏览阅读334次,点赞5次,收藏5次。分布式锁的设计和实现是一个复杂但至关重要的课题,不同的实现方式各具优势,根据系统的实际需求和现有技术栈选择合适的分布式锁方案至关重要。在分布式系统中,由于数据分散存储在不同的节点上,当多个节点同时对同一资源进行操作时,如果没有有效的协调机制,就可能出现并发控制问题,导致数据的不一致和冲突。使用setnx命令尝试设置一个唯一的key-value对,key通常与待保护的资源相关联,value可以是线程ID或随机生成的UUID,如果设置成功,则认为获取到了锁。

联想服务器TD630安装系统,ThinkServer_TD340_RAID及系统安装.docx-程序员宅基地

文章浏览阅读597次。ThinkServer_TD340_RAID及系统安装Lenovo ThinkServer TD340 RAID及系统安装前言:Lenovo ThinkServer TD340随机配备导航盘,其RAID及系统安装有两种方式可选:导航盘方式和传统方式。导航盘方式较为简洁,且在系统安装完成后无需再进行驱动安装,其驱动已集成在导航盘上,如以此方式安装按导航盘引导进行即可,在此不做详细介绍;传统方式..._联想服务器td340u盘安装win2008

推荐文章

热门文章

相关标签