技术标签: linux 通配符匹配数字
RHEL7 学习笔记(17) 通配符和正则表达式
这一节学习了通配符和正则表达式在grep里面使用。
首先看看Shell下的通配符。
最最常见的符号如下所示:
数字 [0-9]
字母 [a-z]
非字母[^a-z]
非数字[^0-9]
任意符号 *
转义符号 \
大写 [[:upper:]]
小写 [[:lower:]]
数字 [[:digit:]]
字母 [[:alpha:]]
数字+字母[[:alnum:]]
空格 [[:blank:]]
看看例子
例1
第一个列出了数字和字母开头的文件
第二个列出了数字和-开头的文件
第三个列出来了数字开头的文件
例2
如果直接查找vsftp* 没问题;但是如果在当前目录下创建了匹配这个格式的文件,那得到的结果就是当前目录的文件而不是软件包了,因为yum是shell 的子进程,这个* 通配符在shell就被解析了;可以加引号或者转移符号来避免误会
下面来看看正则表达式在grep里面的使用
grep之前已经学习过了,简单的表达形式是 【grep 选项 字符串 文件】
选项可以是-n 行号,-v 反向选择,-a 文本文件,-i 忽略大小写
通配符在grep一样可以使用,不过有的符号意思发生了改变。
例3
先看个基本的例子,反向搜索没有#的行,如果不加引号,他会被shell直接解析,而不是在grep中进行解析
^符号如果是在方括号里面,表示否定; 如果是单引号里面表示这个字符串是以^后面的字符开头的
对比如下所示
如果表示结尾的字符,可以用'$', 如果直接输入‘^$', 则表示空行
例4
空行
如何表示一个或者多个字符?我们可以用. (小圆点)来表示任意一个符号,表示这个位置就有个符号,随便是啥都行;* (星号) 可以表示有0个或者多个重复的符号,比如to* 可以表示的格式是tXXXXXXXX,toXXXXX,tooXXXXXXX ...都是可以的
例5 比如 to* 和 t.m的区别
除了 小圆点和星号,我们还可以使用?表示0或1次; +表示1次以上, {m,n}表示表达式出现至少m次,最多n次;这需要使用扩展正则表达式-P或者-E,否则直接运行无效
例 6 直接运行没有结果,-P用perl的方式来解析,就可以了 {3}表示 o 出现3次,{2,4}表示出现了2次到4次
to.?m 里面 . 表示任意一个字符,?表示这个任意字符出现了0次或者1次,因此满足 tom, toXm 的字符串都是可以的
类似的 to.+m里面 .表示任意字符,+表示这个字符出现了1次或者多次,那么匹配的字符串是toXm,toXXm,toXXXm,换句话说满足to开头,m结尾的字符串都是可以的
最后做个练习,如何只输出ifconfig里面ip的结果,不准用awk
这个能够匹配的写法太多了,豆子自己写了个比较复杂的
下面是老师的写法
文章浏览阅读3.1w次,点赞23次,收藏43次。定于输出格式。d表示输出整数,3表示输出的数字占3个字符的位置。-号表示对齐方式。是左对齐。如果是+号或者不写,表示右对齐。后续会继续补充。_c语言%-3d什么意思
文章浏览阅读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编译
文章浏览阅读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
文章浏览阅读223次。个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈概述广义的堆外内存说到堆外内存,那大家肯定想到堆内内存,这也是我们大家接触最多的,我们在jvm参数里通常设置-Xmx来指定我们的堆的最大值,不过这还不是我们理解的Java堆,-Xmx的值是新生代和老生代的和的最大值,我们在jvm参数里通常还会加一个参数-XX:MaxPermSize来指定持久代的最大值,那么我们认识..._jvn源码分析线程工作内存
文章浏览阅读2.4k次。在实际项目中,我们难免会遇到一些无值。当我们转JSON时,不希望这些null出现,比如我们期望所有的null在转JSON时都变成“”“”这种空字符串,那怎么做呢?Jackson中对null的处理 1 @Configuration 2 public class JacksonConfig { 3 @Bean 4 @Primary 5 @Condition..._阿里的json转化怎么把null转为空字符串
文章浏览阅读1.2w次,点赞86次,收藏87次。中国开发者对于疫情的整体关注程度及防护方向。_连登 技术
文章浏览阅读8k次,点赞4次,收藏3次。一、友盟QQ分享不走回调方法集成友盟社会化分享后,除了QQ、QQZone以外,其他分享都能正常显示分享成功、取消分享,而QQ和QQ空间明明分享成功了,但是并没有走回调方法,不显示成功失败或者取消。原因很可能是你的分享代码代码写在了Fragment中,QQ分享成功后并不走Fragment的onActivityResult()方法,需要把分享的方法写在Activity中,并在onActivityR_android qq空间分享 分享取消‘
文章浏览阅读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)笔..._电脑键盘功能基础知识
文章浏览阅读10w+次,点赞2次,收藏6次。k8s Job_deamonset
文章浏览阅读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
文章浏览阅读82次。转载者语:原文标题:CentOS 6.2yum安装配置lnmp服务器(Nginx+PHP+MySQL)本人以CentOS6.5亲测成功.以下是原文.------------------------------------------------------------------------------------------------------------------------------..._centos nginx php mysql yum