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

智能推荐

%-3d在C语言中的含义是什么?_c语言%-3d什么意思-程序员宅基地

文章浏览阅读3.1w次,点赞23次,收藏43次。定于输出格式。d表示输出整数,3表示输出的数字占3个字符的位置。-号表示对齐方式。是左对齐。如果是+号或者不写,表示右对齐。后续会继续补充。_c语言%-3d什么意思

使用vs2019编译QCAD_qcad编译-程序员宅基地

文章浏览阅读1.7k次,点赞2次,收藏12次。QCAD是一个开源的2维CAD项目。并且拥有Windows macOS以及linux跨平台的解决方案。该软件的通用交换格式是*.dxf文件,专业版的qcad也支持dwg格式文件。下面通过这篇博客详细记录一下visual studio2019+qt5.15.2编译QCAD的过程,以及编译过程中遇到的一些麻烦和解决方案:1.获取qcad源码QCAD的源码可以通过Git获取:链接如下:https://github.com/qcad/qcad ,下载qcad-master即可。 完成下载后解压。2._qcad编译

shell学习笔记(3)grep -v grep|awk ‘{print $2}‘ ` 表示是什么意思_grep -v grep | awk-程序员宅基地

文章浏览阅读2.1w次,点赞16次,收藏57次。网上查阅shell定时脚本相关代码其中有一句grep -v grep|awk 'awk {print $2}'不是很理解(基础知识太薄弱)pid=`ps -ef|grep run.jar|grep -v grep|awk '{print $2}' `经查阅资料grep -v 意为不包括;上述语句的意思是查找除了grep下的所有信息,如下图所示;awk '{print $2..._grep -v grep | awk

JVM源码分析之堆外内存完全解读_jvn源码分析线程工作内存-程序员宅基地

文章浏览阅读223次。个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈概述广义的堆外内存说到堆外内存,那大家肯定想到堆内内存,这也是我们大家接触最多的,我们在jvm参数里通常设置-Xmx来指定我们的堆的最大值,不过这还不是我们理解的Java堆,-Xmx的值是新生代和老生代的和的最大值,我们在jvm参数里通常还会加一个参数-XX:MaxPermSize来指定持久代的最大值,那么我们认识..._jvn源码分析线程工作内存

springboot中返回值json中null转换空字符串_阿里的json转化怎么把null转为空字符串-程序员宅基地

文章浏览阅读2.4k次。在实际项目中,我们难免会遇到一些无值。当我们转JSON时,不希望这些null出现,比如我们期望所有的null在转JSON时都变成“”“”这种空字符串,那怎么做呢?Jackson中对null的处理 1 @Configuration 2 public class JacksonConfig { 3 @Bean 4 @Primary 5 @Condition..._阿里的json转化怎么把null转为空字符串

连登 GitHub TOP 榜,中国开发者在行动!_连登 技术-程序员宅基地

文章浏览阅读1.2w次,点赞86次,收藏87次。中国开发者对于疫情的整体关注程度及防护方向。_连登 技术

随便推点

友盟第三方分享QQ分享不走回调方法或者显示取消分享的问题_android qq空间分享 分享取消‘-程序员宅基地

文章浏览阅读8k次,点赞4次,收藏3次。一、友盟QQ分享不走回调方法集成友盟社会化分享后,除了QQ、QQZone以外,其他分享都能正常显示分享成功、取消分享,而QQ和QQ空间明明分享成功了,但是并没有走回调方法,不显示成功失败或者取消。原因很可能是你的分享代码代码写在了Fragment中,QQ分享成功后并不走Fragment的onActivityResult()方法,需要把分享的方法写在Activity中,并在onActivityR_android qq空间分享 分享取消‘

严重: maxIdle is deprecated,严重: testWhileIdle is true, validationQuery not set,Druid连接池连接MSQL报错处理...-程序员宅基地

文章浏览阅读1k次。JDK9 引发的血案1、因为使用mysql-connector的依赖版本对应的mysql数据库冲突,mysql8需要使用8.0.11以上的高版本 2、jdk9的反射本身存在BUG,会有warning警告,一般不影响使用,在后续版本会更新修复首先检查下自己使用的mysql 是什么版本的,5.5 、5.6版本的使用老依赖就行,新的依赖驱动Driver注册包路径已经改变、老版本依赖已经不适..._error - maxidle is deprecated

计算机基础知识键盘知识,电脑键盘的一些基础知识和维护方法-程序员宅基地

文章浏览阅读1w次。1、键盘基础知识1)键盘是由许多按键组成,主要是字母和数字,左边是主键盘,右边是数字小键盘;2)ESC键是取消、F1键是帮助,Tab 键在对话框里是切换,在文本里产生跳格,Capslock是大小写锁定键,Shift 键是上档键,输入按键上面的字符,Numlock是数字小键盘的数字键,Ctrl和Alt是组合键,跟其他按键一起完成一些功能,如 Ctrl+空格 是中英文切换,Alt+F4 是退出;3)笔..._电脑键盘功能基础知识

k8s 控制器:Daemonset 和 Job_deamonset-程序员宅基地

文章浏览阅读10w+次,点赞2次,收藏6次。k8s Job_deamonset

html和vue XLSX.utils.json_to_sheet导出excel模板-程序员宅基地

文章浏览阅读3.9k次,点赞4次,收藏7次。html XLSX.utils.json_to_sheet导出excel模板若使用vue,设置按钮,调用函数,自己比葫画瓢,慢慢摸索把<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <m_xlsx.utils.json_to_sheet

centos 6.5 php nginx+mysql yum_CentOS 6.5 yum安装配置lnmp服务器(Nginx+PHP+MySQL)-程序员宅基地

文章浏览阅读82次。转载者语:原文标题:CentOS 6.2yum安装配置lnmp服务器(Nginx+PHP+MySQL)本人以CentOS6.5亲测成功.以下是原文.------------------------------------------------------------------------------------------------------------------------------..._centos nginx php mysql yum

推荐文章

热门文章

相关标签