当前位置: 首页 > news >正文

SHELL----正则表达式

一、文本搜索工具——grep

grep   -参数   条件   文件名

其中参数有以下:

-i 忽略大小写
-c 统计匹配的行数
-v 取反,不显示匹配的行
-w 匹配单词
-E 等价于 egrep ,即启用扩展正则表达式
-n 显示行号
-rl 将指定目录内的文件打印
-A 数字 匹配行及以下 n
-B 数字 匹配行及以上 n
-C 数字 匹配行及上下 n
-q 静默模式,没有任何内容输出,使用 $? 来判断是否执行成功
-o 只显示匹配的内容

二、正则表达式常见元字符

POSIX字符类:POSIX字符类是一个形如 [:...:] 的特殊元序列(meta sequence),他可以用于匹配特定的字符范围

三、扩展正则表达式

四、实验

# 显示/etc/passwd 中以bash结尾的行信息
[root@server ~]# grep -n "bash$" /etc/passwd
# 找出/etc/passwd中包含三位数或者四位数的行信息
[root@server ~]# grep -n "\<[0-9]\{3,4\}\>" /etc/passwd
# 上例改写
[root@server ~]# grep -n "\<[[:digit:]]\{3,4\}\>" /etc/passwd
# 检索/etc/grub2.cfg文件中,以至少一个空白字符开头,后面跟上非空白字符的行
[root@server ~]# grep -n "^[[:space:]]\+[^[:space:]]" /etc/grub2.cfg
# 分析
# ^[[:space:]] :表示以空白字符开头
# \+:grep不支持扩展正则的元字符,需要转义
# [^[:space:]]:不包含非空白字符
# grep可以使用-E参数启用扩展正则,命令改为:
[root@server ~]# grep -nE "^[[:space:]]+[^[:space:]]" /etc/grub2.cfg
# 也可以使用egrep,其支持扩展正则,命令改为
[root@server ~]# egrep -n "^[[:space:]]+[^[:space:]]" /etc/grub2.cfg
# 检索netstat -tan 命令的运行结果中,以“LISTEN”后跟上0个或多个空白字符结尾的行信息
[root@server ~]# netstat -tan | grep "LISTEN[[:space:]]*$"
# *$表示重复前面0次或多次,$为结尾
# 检索fdisk -l 命令结果中,包含以/dev/开头后跟上n的行信息
[root@server ~]# fdisk -l | grep "^/dev/n"
# 检索 ldd /usr/bin/cat 命令结果中的文件路径
[root@server ~]# ldd /usr/bin/cat | grep -oE "/[^[:space:]]+"
# -o:只显示检索命中的标红内容
# -E:启用扩展正则
# 检索/proc/meminfo文件中,所有以大写A或大写S开头的行信息
[root@server ~]# grep -n "^[AS]" /proc/meminfo
# 显示/etc/passwd文件中当root、sshd、chrony的相关信息
[root@server ~]# egrep -n "(root|sshd|chrony)" /etc/passwd
# 需要使用egrep,其支持扩展正则
# (|) 会对|左右两边的整体内容进行匹配
# echo输出一个绝对路径,使用egrep取出其基名
[root@server ~]# echo /etc/yum.repos.d/ | egrep -o [^/]+/?$
# 检索ifconfig命令结果的1-255之间的整数
[root@server ~]# ifconfig | egrep -o "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-
9]|25[0-5])\>"

相关文章:

SHELL----正则表达式

一、文本搜索工具——grep grep -参数 条件 文件名 其中参数有以下&#xff1a; -i 忽略大小写 -c 统计匹配的行数 -v 取反&#xff0c;不显示匹配的行 -w 匹配单词 -E 等价于 egrep &#xff0c;即启用扩展正则表达式 -n 显示行号 -rl 将指定目录内的文件打…...

44.5.【C语言】辨析“数组指针”和“指针数组”

目录 1.数组指针 2.指针数组 执行结果 底层分析 1.数组指针 从语文的角度理解,"数组"修饰"指针".因此数组指针是指针 例如以下代码 #include <stdio.h> int main() {char a[5] { "ABCDE" };return 0;} 其中a就是数组指针,因为数…...

node.js基础学习-express框架-路由及中间件(十)

一、前言 Express 是一个简洁、灵活的 Node.js Web 应用框架。它基于 Node.js 的内置 HTTP 模块构建&#xff0c;提供了一系列用于构建 Web 应用程序和 API 的功能&#xff0c;使开发者能够更高效地处理 HTTP 请求和响应&#xff0c;专注于业务逻辑的实现。 其特点包括简单易用…...

使用MSYS搭建linux开发环境踩坑笔记

前言&#xff1a; 使用linux系统或虚拟机进行嵌入式linux开发是常规方法&#xff1b; 使用MSYS是用于尝鲜和研究。 由于windows和linux的差异&#xff0c;使用MSYS代替Linux虚拟机会遇到很多坑。 主要原因在于&#xff1a; 1. windows和linux文件系统的差异&#xff1a;win不…...

vue3+ts+vite+ElementPlus上传进度条实时更新(UPLoad和progress)。

需求&#xff1a; 上传文件时&#xff0c;展示进度条实时更新&#xff1a; 下面是代码片段: <!-- 添加媒体弹窗 -- 上传 --><el-dialog v-model"centerDialogVisible" title"媒体信息" width"700" :close-on-click-modal"false&qu…...

AspNet WebAPI 模型绑定问题

继承System.Web.Http.ApiController的Action的Model如果被[Serializable]定义&#xff0c;会导致Model的字段无法绑定。 Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll [Serializable] public class Model {public string id { get; set; } }public MyA…...

Android 图形系统之七:SurfaceFlinger

一. 引言 什么是 SurfaceFlinger&#xff1f;SurfaceFlinger 的核心作用和地位&#xff1f;为什么需要了解 SurfaceFlinger&#xff1f; 二. SurfaceFlinger 的基本概念 Surface 和 SurfaceFlinger 的关系SurfaceFlinger 与图形渲染&#xff08;OpenGL ES 和 Vulkan&#xf…...

14、鸿蒙学习——管理通知角标

针对未读的通知&#xff0c;系统提供了角标设置接口&#xff0c;将未读通知个数显示在桌面图标的右上角角标上。 通知增加时&#xff0c;角标上显示的未读通知个数需要增加。 通知被查看后&#xff0c;角标上显示的未读通知个数需要减少&#xff0c;没有未读通知时&#xff0…...

TongRDS分布式内存数据缓存中间件

命令 优势 支持高达10亿级的数据缓冲&#xff0c;内存优化管理&#xff0c;避免GC性能劣化。 高并发系统设计&#xff0c;可充分利用多CPU资源实现并行处理。 数据采用key-value多索引方式存储&#xff0c;字段类型和长度可配置。 支持多台服务并行运行&#xff0c;服务之间可互…...

[在线实验]-RabbitMQ镜像的下载与部署

镜像下载 docker的rabbitmq镜像资源-CSDN文库 加载镜像 docker load --input rabbitmq.tar 给镜像打标签 这里发现镜像名为none&#xff0c;需要给镜像重命名下 docker tag [镜像id] [新镜像名称]:[新镜像标签] docker tag ebaf409ffbe2 rabbitmq:management 运行镜像…...

Linux 系统文件描述符(File Descriptor)小白级介绍

1. 概述 Linux 遵循"一切皆文件"的理念。在 Linux 系统中&#xff0c;文件描述符是一个索引值&#xff08;非负整数&#xff09;&#xff0c;指向内核为每个进程所维护的该进程打开文件的记录表。 如上所述&#xff0c;每个进程都维护着一张文件描述符表。 文件描述…...

【Verilog】实验二 数据选择器的设计与vivado集成开发环境

目录 一、实验目的 二、实验环境 三、实验任务 四、实验原理 五、实验步骤 top.v mux2_1.v 一、实验目的 1. 掌握数据选择器的工作原理和逻辑功能。 2. 熟悉vivado集成开发环境。 3. 熟悉vivado中进行开发设计的流程。 二、实验环境 1. 装有vivado的计算机。 2. Sw…...

IDL学习笔记(三)OMI数据处理。hdf5文件读取,图像反转,GeoTiff区别,月季年均值计算提取输出,单位转换,运行时间计算

modis Level 2 grid 数据是全球格网化数据。一天的数据全在其中。 modis Level 1 和 2 数据是一景一景的影像。 IDL学习笔记&#xff08;三&#xff09;OMI数据处理 hdf5文件读取单位转换&#xff0c;输出hdf5数据集的图像&#xff0c;并检查图像经纬度是否正确&#xff0c;若错…...

深入浅出:PHP中的数据类型全解析

文章目录 引言理解数据类型标量类型整数 (integer)浮点数 (float)布尔值 (boolean)字符串 (string) 复合类型数组 (array)对象 (object)资源 (resource)NULL 特殊类型Callable强制类型转换 实战案例总结与展望参考资料 引言 在编程的世界里&#xff0c;数据类型是构建任何应用…...

要使用 OpenResty 创建一个接口,返回客户端的 IP 地址,并以 JSON 格式输出

要使用 OpenResty 创建一个接口&#xff0c;返回客户端的 IP 地址&#xff0c;并以 JSON 格式输出 要使用 OpenResty 创建一个接口&#xff0c;返回客户端的 IP 地址&#xff0c;并以 JSON 格式输出方案一解决方案&#xff08;openresty使用cjson&#xff09;说明&#xff1a;使…...

智慧油客:从初识、再识OceanBase,到全栈上线

今天&#xff0c;我们邀请了智慧油客的研发总监黄普友&#xff0c;为我们讲述智慧油客与 OceanBase 初识、熟悉和结缘的故事。 智慧油客自2016年诞生以来&#xff0c;秉持新零售的思维&#xff0c;成功从过去二十年间以“以销售产品为中心”的传统思维模式&#xff0c;转向“以…...

ClickHouse守护进程

背景描述 维护CK过程中&#xff0c;有时候会有CK OOM&#xff0c;并且CK自己没有自动拉起的情况出现&#xff1b;那么这个时候就需要守护进程&#xff0c;最初我不说了Supervisor来做守护进程&#xff0c;但是当我手动kill的时候发现并没有自动拉起。 解决方案 于是乎自己写…...

智能合约

06-智能合约 0 啥是智能合约&#xff1f; 定义 智能合约&#xff0c;又称加密合约&#xff0c;在一定条件下可直接控制数字货币或资产在各方之间转移的一种计算机程序。 角色 区块链网络可视为一个分布式存储服务&#xff0c;因为它存储了所有交易和智能合约的状态 智能合约还…...

SQL面试题——拼多多SQL面试题 求连续段的起始位置和结束位置

拼多多SQL面试题 求连续段的起始位置和结束位置 今天的题目来自拼多多,我们先看一下题目描述 有一张表ids记录了id,id不重复,但是会存在间断,求出连续段的开始位置和结束位置 +---+ | id| +---+ | 1| | 2| | 3| | 5| | 6| | 8| | 10| | 12| | 13| | 14| | 15| +--…...

玩《三角洲行动》遇到游戏运行故障是什么原因?游戏运行故障要怎么解决?预防游戏运行故障问题出现

《三角洲行动》游戏运行故障解析与解决方案&#xff1a;原因、解决与预防 在畅游《三角洲行动》这款充满挑战与激情的游戏时&#xff0c;玩家可能会遭遇各种游戏运行故障&#xff0c;如卡顿、闪退、无法启动等问题。我将结合自己丰富的经验和知识&#xff0c;为大家深入剖析《…...

电力系统时序一致性保障:elec-ops-prediction的长时序稳定性约束实现

电力系统时序一致性保障&#xff1a;elec-ops-prediction的长时序稳定性约束实现 【免费下载链接】elec-ops-prediction elec-ops-prediction 是 CANN 社区 Electrical Engineering SIG&#xff08;电力行业兴趣小组&#xff09;旗下的电力负荷预测算子库&#xff0c; 聚焦于电…...

CXPatcher:让Mac上的CrossOver性能飞升的终极指南

CXPatcher&#xff1a;让Mac上的CrossOver性能飞升的终极指南 【免费下载链接】CXPatcher A patcher to upgrade Crossover dependencies and improve compatibility 项目地址: https://gitcode.com/gh_mirrors/cx/CXPatcher 你是否曾经在Mac上尝试运行Windows游戏时感到…...

Cat-Catch终极指南:5步快速掌握网页资源抓取技巧

Cat-Catch终极指南&#xff1a;5步快速掌握网页资源抓取技巧 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾在网上看到一个精彩的视频教程…...

YOLOv8实时目标检测与自适应控制技术在游戏辅助系统中的应用研究

YOLOv8实时目标检测与自适应控制技术在游戏辅助系统中的应用研究 【免费下载链接】RookieAI_yolov8 基于yolov8实现的AI自瞄项目 AI self-aiming project based on yolov8 项目地址: https://gitcode.com/gh_mirrors/ro/RookieAI_yolov8 技术挑战剖析&#xff1a;实时游…...

DeepSeek MoE训练稳定性突破(动态负载均衡+梯度裁剪双保险):解决专家坍缩的工业级方案

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;DeepSeek MoE架构解析 DeepSeek MoE&#xff08;Mixture of Experts&#xff09;是一种面向大语言模型高效推理与训练的稀疏化架构设计&#xff0c;其核心思想是在保持模型总参数量庞大的前提下&#xff0c;仅…...

聚合物半导体薄膜:柔性电子皮肤如何实现无感健康监测

1. 项目概述&#xff1a;从“硬核”到“柔韧”的健康监测革命如果你还在用那些又厚又硬、贴着皮肤半天就发痒发红的老式健康监测电极&#xff0c;是时候了解一下这个正在改变游戏规则的新玩意儿了——聚合物半导体薄膜。这可不是什么实验室里的遥远概念&#xff0c;它正从顶尖期…...

Perplexity历史资料搜索失效真相大起底(时间戳偏移、缓存策略与知识图谱断层深度解析)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Perplexity历史资料搜索失效真相大起底&#xff08;时间戳偏移、缓存策略与知识图谱断层深度解析&#xff09; Perplexity 的历史资料检索能力在近期高频出现“查无结果”或“返回过期摘要”现象&#…...

Windows管道通信踩坑记:客户端异常退出后,服务端如何优雅重建命名管道实例(附C++代码)

Windows管道通信实战&#xff1a;客户端异常退出时的服务端健壮性设计 命名管道&#xff08;Named Pipe&#xff09;是Windows平台进程间通信&#xff08;IPC&#xff09;的核心机制之一&#xff0c;但在实际工程中&#xff0c;客户端异常退出的场景常常成为稳定性短板。当客户…...

UE5 Niagara实战:手把手教你用自定义模块实现粒子间的实时位置同步

UE5 Niagara实战&#xff1a;用自定义模块构建粒子间的动态位置同步系统 在实时视觉效果开发中&#xff0c;粒子系统间的交互一直是提升场景动态表现力的关键。当两个发射器的粒子需要建立位置关联时——比如魔法飞弹追踪目标、萤火虫群集飞行或者流体颗粒间的引力作用——直接…...

LM317电源模块的“隐藏参数”与实战避坑:为什么你的空载电压总是不稳?

LM317电源模块的“隐藏参数”与实战避坑&#xff1a;为什么你的空载电压总是不稳&#xff1f; 在电子设计领域&#xff0c;LM317作为经典的可调线性稳压器&#xff0c;几乎出现在每个工程师的备件库中。但当你按照标准电路搭好原型&#xff0c;却发现空载时输出电压飘忽不定——…...