Shell通配符和正则表达式

news2024/11/24 7:52:25

目录

​​​​​​​grep

通配符

正则表达式


grep

grep家族有三大成员分别为:

        grep:支持使用基本正则表达式。

        egrep:支持使用扩展正则表达式。

        fgrep:不支持使用正则表达式,即所有的正则表达式中的元字符都将作为一般字符,仅仅

拥有其字面意义,不再拥有特殊意义

 

grep命令的基本语法如下:grep [options] pattern [file…]

[options]选项作用

-n 

显示行号

-o 

只显示匹配的内容

-q

静默模式,没有任何输出,得用$?来判断执行成功没有,即有没有过滤到想要的内容

-l

如果匹配成功,则只将文件名打印出来,失败则不打印,通常-rl一起用,grep -rl 'root' /etc

-A 

如果匹配成功,则将匹配行及其后n行一起打印出来

-B 

如果匹配成功,则将匹配行及其前n行一起打印出来

-C

如果匹配成功,则将匹配行及其前后n行一起打印出来

--color

高亮颜色显示匹配到的字符串

-c 

如果匹配成功,则将匹配到的行数打印出来

-E 

等于egrep,扩展

-i 

忽略大小写

-v 

取反,不匹配

-w

匹配单词

-r

递归搜索,不仅搜索当前目录,还要搜索其各级子目录

-s

不显示关于不存在或者无法读取文件的错误信息

通配符

通配符作用
*匹配任意长度字符,可以是0个
?匹配任意单个字符,必须是1个
[ ]匹配指定字符范围内的任意单个字符
[a-z]表示a-z,A-Y,但不包含Z
[ A-Z ]表示A,b,B.....z,Z,不包含a
[ a-Z ]包含所有大小写字母
[ :upper: ]所有大写字母
[ :lower: ]所有小写字母
[ :alpha: ]所有字母
[ :digit: ]所有数字
[ :blank: ]水平空白字符
[ :punct: ]标点符号
[ ^ ]匹配指定字符范围外的任意单个字符

正则表达式

^

在每行的开始进行匹配

$

在每行的末尾进行匹配

.

对任何单个字符进行匹配

*

对前一项进行0次或多次重复匹配

[str]

对str中的任何单个字符进行匹配

[^str]

对任何不在str中的单个字符进行匹配

[a-b]

对a到b之间的任何字符进行匹配

\

忽略后面一个字符的特殊含义

+

对前一项进行1次或多次重复匹配

对前一项进行0次或1次重复匹配

{j}

对前一项进行j次重复匹配

{j,}

对前一项进行j次或更多次重复匹配

{,k}

对前一项最多进行k次重复匹配

(s|t)

匹配s项或t项中的一项

[[:alnum:]]

匹配任意一个字母或者数字,等价于[A-Za-z0-9]

[[:alpha:]]

匹配任意一个字母,等价于[A-Za-z]

[[:digit:]]

匹配任意一个数字,等价于0-9

[[:lower:]]

匹配任意一个小写字母,等价于a-z

[[:upper:]]

匹配任意一个大写字母,等价于A-Z

[[:space:]]

匹配任意一个空白符,包括空格、制表符、换行符以及分页符

[[:blank:]]

匹配空格和制表符

[[:graph:]]

匹配任意一个看得见的可打印字符,不包括空白字符

[[:print:]]

匹配任何一个可以打印的字符,包括空白字符,但是不包括控制字符、字符串结束符‘\0’、EOF文件结束符(-1)

 [[:cntrl:]]

匹配任何一个控制字符,即ASCII字符集中的前32个字符。例如换行符、 制表符等

[[:punct:]]

匹配任何一个标点符号,例如“[]”、“{}”或者“,”等

[[:xdigit:]]

匹配十六进制数字,即0-9、a-f以及A-F

几个简单的使用例

^word 表示搜索以word开头的内容

 word$ 表示搜索以word结尾的内容

 . 代表且只能代表一个任意字符

 * 重复0个或多个前面的字符

 

[] 匹配字符集合内任意一个字符,如[a-z]

 

[^abc]在中括号里表示非,不包含a或b或c

 

找出"fdisk -l“命令的结果中,取出硬盘路径

fdisk -l | grep Disk | grep /dev/nv | cut -d: -f 1 | cut -d " " -f2

 

 

找出ifconfig命令输出中的所有IP地址

ifconfig | egrep -o "[0-9]{1,3}\.[0-9]{1,3}\.[0-9] {1,3}\.[0-9]{1,3}"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/749478.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mt管理器使用(app管理)

http://www.360doc.com/content/12/0121/07/13646414_997668971.shtml

常用的访问控制权限模型DAC RBAC

常用的访问控制权限模型DAC RBAC 文章目录 常用的访问控制权限模型DAC RBACLinux 自主访问控制与强制访问控制术语概念存取访问控制 Access Control自主访问控制强制访问控制 基于角色的权限控制模型RBAC模型管理方法RBAC0的管理命令RBAC0的系统支持方法RBAC0的高级审查持方法 …

❤️创意网页:经典透明登录页面(好看易学易用)

✨博主:命运之光 🌸专栏:Python星辰秘典 🐳专栏:web开发(简单好用又好看) ❤️专栏:Java经典程序设计 ☀️博主的其他文章:点击进入博主的主页 前言:欢迎踏入…

thinkphp模型递归查询

效果图: 查询代码: use app\model\Menu;function getMenuList(string $uid) {$list Menu::where(pid, $uid)->select();foreach ($list as $val) {$val[children] getMenuList($val->uid);}return $list; }function getMenuBelong(string $uid)…

springboot人事管理系统

本项目在开发和设计过程中涉及到原理和技术有: B/S、java技术和MySQL数据库等等;将按以下章节进行开发设计; 绪论;剖析项目背景,说明研究的内容。 开发技术;系统主要使用了java技术,b/s模式和myspl数据库,并…

如何操作MySQL数据库数据

目录 一、MySQL数据库概念 数据 表(数据表) 数据库 数据库管理系统 数据库的建立和维护功能 数据定义功能 数据操纵功能 数据库的运行管理功能 通信功能 数据流向 二、主流数据库分类 1.SQL Server 数据库 (微软分公司产品&…

【力扣算法11】之 8. 字符串转换整数 (atoi) python

文章目录 问题描述示例1示例2示例3提示 思路分析代码分析完整代码详细分析运行效果截图调用示例运行结果 完结 问题描述 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C 中的 atoi 函数)。 函数 m…

基于scrcpy的Android群控项目重构,集成Appium服务执行自动化测试用例

系列文章目录 基于scrcpy的Android群控项目重构 基于scrcpy的Android群控项目重构 进阶版 基于scrcpy的Android群控项目重构,获取Android屏幕元素信息并编写自动化事件(视频) 基于scrcpy的Android群控项目重构,获取Android屏幕…

大数据与视频技术的融合趋势将带来怎样的场景应用?

视频技术和AI技术的融合是一种新兴的技术趋势,它将改变视频行业的运作方式。视频技术和AI技术的融合主要包括以下几个方面: 1)人脸识别技术 人脸识别技术是AI技术的一个重要应用场景。它可以通过对视频中的人脸进行识别和分析,实…

Spark(23):SparkStreaming之DStream转换

目录 0. 相关文章链接 1. DStream转换概述 2. 无状态转化操作 2.1. Transform 2.2. join 3. 有状态转化操作 3.1. UpdateStateByKey 3.2. WindowOperations 0. 相关文章链接 Spark文章汇总 1. DStream转换概述 DStream 上的操作与 RDD 的类似,分为 Transf…

测试计划(详细版)

目录 简介 测试计划的目的 测试计划的作用 范围 编写条件 注意事项 评审总结 参考模版 测试策略 简介 数据和数据库完整性测试 接口测试 集成测试 功能测试 用户界面测试 性能评测 负载测试 强度测试 容量测试 安全性和访问控制测试 故障转移和恢复测试 …

【linux】“gdb“调试方法与技巧

"gdb"调试方法与技巧 一、什么是gdb?二、gdb的使用进入gdb调试list/l 查看源码l/list行号list/l函数名 run/r运行break(b)设置断点info break查看断点信息finishn/next单条执行s/step进入函数调用p 变量set var修改变量的值continue/cdisable breakpionts…

基于javaweb旅游景点线路预定系统设计与实现

1.引言 随着我国人们生活水平的不断提高,旅游逐渐成为人们工作之余,进行放松压力,调节情绪的首要选择。近几年,我国旅游游客规模不断扩大,使旅游业得到快速发展,但也带来了更激烈竞争。面对更复杂的旅游业…

一分钟让你学会如何判断文件是否结束

文章目录 前言ferror函数feof函数ferror函数与feof函数搭配使用 前言 在所有的文件输入输出函数中,我们介绍了一系列的与文件的顺序读写有关的函数,它们调用成功与失败时的返回值各不相同,为了能更好地记忆这些函数,我们将这些函…

react使用SVGA特效 常用api

下载插件 npm install svgaplayerweb --save react中代码 import React, { useEffect } from react; import SVGA from svgaplayerweb const Svga () > {const bofang () > {var player new SVGA.Player(#demoCanvas);//创建实例var parser new SVGA.Parser(#demo…

【经验贴】项目管理过程中最容易忽略的问题,你踩了几个?

“有没有一句话送给刚入行的项目经理?” 随着毕业季的到来,最近发现越来越多类似的话题,评论区成了众多项目经理自嘲的“据点”,部分新手项目经理看完可能要重新考虑下职业规划了。 “要重点关注客户的需求,而不是项…

Android蓝牙协议栈fluoride(一) - 概述

发展 Android 4.2之前的版本采用Linux官方的蓝牙协议栈BlueZ,Android 4.2开始使用google和Broadcom共同开发的Bluedroid来替代BlueZ,但早期的Bluedroid并不完善,存在较多问题,更新迭代后将其更名为fluoride。接下来的系列文章将逐…

接口测试之深入理解HTTPS

前言 随着网络安全问题越来越被重视,HTTPS协议的使用已经逐渐主流化。目前的主流站点均已使用了HTTPS协议;比如:百度、淘宝、京东等一二线主站都已经迁移到HTTPS服务之上。而作为测试人员来讲,也要需时俱进对HTTPS协议要有一定的…

分布式调用与高并发处理 Dubbo分布式调用

一、Dubbo概念 1.1 什么是分布式系统 单机架构 一个系统业务量很小的时候所有的代码都放在一个项目中就好了,然后这个项目部署在一台服务器上,整个项目所有的服务都由这台服务器提供。 缺点: 服务性能存在瓶颈代码量庞大,系统臃…

未跟踪的文件: (使用 “git add <文件>...“ 以包含要提交的内容)怎么移除这些内容

有时候我们常常修改一些内容 手动就是:rm -rf system/core/healthd/images/.png 怎么丢弃呢? git clean -f . 删除这种文件