Linux:grep进阶(11)

Linux:shell脚本:基础使用(4)《正则表达式-grep工具》_shell grep 全角字符串-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/w14768855/article/details/132338954?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170833601716800226594687%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=170833601716800226594687&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-132338954-null-null.nonecase&utm_term=grep&spm=1018.2226.3001.4450这个是grep的基础使用,本章则搭配着正则表达式之上再加更多的参数进行演示


基础正则表达式

^word   搜索以word开头的。vi/vim中 ^ 一行的开头。

word$   搜索以word结尾的。vi/vim中 $ 一行的结尾。 \$

^$      表示空行

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

 \       例:\. 只代表点本身,转义符号,让有特殊身份意义的字符,脱掉马甲,还原;

\n  换行符

\r  匹配回车

\w  匹配任意一个字符和数字

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

*      匹配所有字符。例:^.* 以任意多个字符开头,.*$以任意多个字符结尾。

[abc]    匹配字符集内的任意一个字符。

 [^abc]   匹配不包含 ^ 后的任意字符的内容。中括号里的 ^ 为取反。

 [1-9]    表示匹配括号内的范围内的任意字符。

a\{n,m\}  重复n到m次前一个重复的字符。若用egrep、sed -r可以去掉斜线。

\{n,\}    重复至少n 次前一个重复的字符。若用egrep、sed -r可以去掉斜线。

\{n\}     重复n 次前一个重复的字符。若用egrep、sed -r可以去掉斜线。

\{,m}\    重复少于m次。


扩展的正则表达式:

    +   重复一次或一次以上前面的一个字符。等同于\{n,}

    ?   重复0次或一次前面的一个字符。等同于\{,m}

    |   或者的意思,用或的方式查找多个符合的字符串。

    ()   找出括号内的字符串。

理解正则

^linux                       ##以linux开始

linux$                       ##以linux结束

linuxfan.                    ##匹配linuxfans等

coo[kl]                      ##匹配cool或cook

9[^5689]                     ##匹配91,92等,但不匹配95,98等

[0-9]                          ##匹配任意一个所有的数字

[a-z]|[A-Z]               ##匹配任意一个所有大小写字母,|属于扩展正则grep -E支持

colou?r                      ##匹配color或colour,但是不能匹配colouur

rollno-9+                 ##匹配rollno-9、rollno-99,rollno-999,但不匹配rollno-

co*l                           ##匹配cl,col,cool,coool等

ma(tri)x                    ##匹配matrix

[0-9]{3}                    ##匹配任意一个三位数,等于[0-9][0-9][0-9]

[0-9]{2,}                     ##匹配任意一个两位数或更多位的数字

[0-9]{2,5}                  ##匹配从两位数到五位数之间的任意一个数字

Oct (1st|2nd)            ##匹配Oct 1st或Oct 2nd

a\.b                            ##匹配a.b,但不能匹配ajb

[a-z0-9_]+\@[a-z0-9_]+\.[a-z]{2,4}                             ##匹配一个邮箱地址 

[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}            ##匹配IP地址 


 grep常用的参数


 grep用法演示

cat /etc/passwd | grep -e root -e tarro -e ftp

# 查询/etc/passwd  多个字符串  -e 后面就是一个指定的字符串可以指定多个

grep -R -o -n -E '[a-z0-9_]+\@[a-z0-9_]+\.[a-z]{2,4}' /etc/

目录下的所有文件中的邮件地址

-R递归,-n表示匹配的行号,-o只输出匹配内容,-E支持扩展正则表达式

grep -R -c 'HOSTNAME' /etc/ |grep -v "0$"

查找/etc/目录下文件中包含“HOSTNAME”的次数,-c统计匹配次数,-v取反

 grep -R -l 'HOSTNAME' /etc/ 

查找包含“HOSTNAME”的文件名,-l显示匹配的文件名,-L显示不匹配的文件名

cat /etc/passwd |grep -c bash$

统计系统中能登录的用户的个数,以bash结尾的个数        

ip a |grep -E '^[0-9]' |awk -F : '{print^C2}'

 获取系统中网卡名称

ip a |grep mtu|grep -o -E "[a-z]{3}[0-9]{1,}"

也是获取系统中网卡名称        

ifconfig ens33 |grep -E -o 'inet [^ ]*' |grep  -o '[0-9.]*'

获取指定网卡的ip地址        

ip a |grep inet |grep ens33 |grep -o "inet[^/]*" |grep -o "[0-9.]*"

获取指定网卡的ip        

ifconfig ens33 |grep -i ether |awk '{print $2}'

截取指定网卡的mac地址

cat 123 | grep -A 3 5

查找指定字符串并且连续显示向下3行

cat 123 | grep -B 3 5

查找指定字符串并且连续显示向上3行

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

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

相关文章

c#,dotnet, DataMatrix 类型二维码深度识别,OCR,(基于 Halcon)

代码中部分调用的 c 函数参数,具体说明自行研究~(我也是参考的其他资源,还没研究透彻) 例如:HOperatorSet.GenRectangle2() , 2000, 2000, 0, 2000, 2000 这些数字应该是选取的图片解析范围、尺寸&#xff…

Linux环境变量配置文件--《一图胜千言》

这张图是一个关于Linux系统中shell启动时配置文件加载顺序的流程图。图中分为登录shell和非登录shell两种情况,来描述不同配置文件的读取过程。 登录shell: 当用户登录时,会首先检查是否存在/etc/profile文件,如果存在&#xff0c…

酷开科技 | 酷开系统壁纸模式,让过年更有氛围感!

在阵阵爆竹声中,家家户户都沉浸在浓浓的年味中。过年,是团圆,是温暖。团团圆圆的日子里,仪式感不可少,换上一张喜气洋洋的电视壁纸吧,寓意幸福一年又一年。打开酷开系统壁纸模式挑选一张年味十足的壁纸&…

【深度学习】神经网络的建立与推理

文章目录 神经网络(neural network)的结构神经元中常用的激活函数(activation function)神经网络的表示神经网络的代码实现使用已学习完毕的神经网络进行推理(inference) 源代码文件请点击此处!…

毕设(二)——NB-IOT通信模块(nb卡通信测试)+gps定位

文章目录 一、关于接线2月1日记录2月4日记录 二、网络连接测试三、HTTP通信3.1 网络调试3.2 nb-lot的连接测试 一、关于接线 如果pico的供电能力不行,可能会直接用4.2V的锂电池对右下引脚进行供电 这个模块只支持nb卡,我哭死,20块钱&#xff…

01 Qt自定义风格控件的基本原则

目录 1.继承原生控件 2.组合原生控件 3.仿写原生控件 PS:后续将继续分享开发实践中各类自定义控件的方法、思路以及组件库 1.继承原生控件 关键字:继承、paintEvent 这里想说的是,Qt的Gui框架在封装原生控件的同时, 也为开发者提供了各…

每日一题——LeetCode1464.数组中两元素的最大乘积

这题就是找数组里的最大值和次大值 方法一 排序 var maxProduct function(nums) {nums.sort((a,b)>b-a)return (nums[0] - 1) * (nums[1] - 1); }; 消耗时间和内存情况: 方法二 一次遍历: var maxProduct function(nums) {let first-1,second-…

MySQL的备份与恢复案例

新建数据库 数据库备份,数据库为school,素材如下1.创建student和score表CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address…

打码半年,开源一款自定义大屏设计软件!

hi,大家好,我是Tduck马马。 最近我们开源了一款大屏软件-TReport,与大家分享。 TReport是一款基于Vue3技术栈的数据可视化系统,支持静态、动态api等数据源;可用于数据可视化分析、报表分析、海报设计使用。 提供自定…

leetcode hot100 分割等和子集

在本题中,我们是要把一个数组,分割成两个子集,并且两个子集的元素和相等。那么也就是说,两个子集的和是相等的,并且都是整个数组的一半。那我们考虑这是一个01背包问题,物品的价值和物品的质量一样&#xf…

linux 10 定时任务

作用: 计划任务主要是做一些周期性的任务, 目前最主要的用途是定期备份数据。 at命令的时间格式: 例子: crontab有系统级别的任务,用户的不放在这里 查看用户任务 或者用

VSCODE使用Django

https://code.visualstudio.com/docs/python/tutorial-django#_use-a-template-to-render-a-page 通过模板渲染页面 HTML文件 实现步骤 1, 修改代码,hello的App名字增加到installed_apps表中。 2, hello子目录下,创建 .\templat…

一文搞懂LDO !

7.LDO 1.原理 通过运放调节P-MOS的输出 低压差: 输出压降比较低,例如输入3.3V,输出可以达到3.2V。 线性: LDO内部的MOS管工作于线性状态。(可变电阻区) 稳压器: 说明了LDO的用途是用来给电…

Panalog大数据日志审计系统libres_syn_delete.php存在命令执行漏洞

文章目录 前言声明一、Panalog大数据日志审计系统简介二、漏洞描述三、影响版本四、漏洞复现五、整改意见 前言 Panalog大数据日志审计系统定位于将大数据产品应用于高校、 公安、 政企、 医疗、 金融、 能源等行业之中,针对网络流量的信息进行日志留存&#xff0c…

Maven(基础)、MyBatis

简介 Apache Maven是一个项目管理和构建工具,它基于项目对象模型 (POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档 官网: http://maven.apache.org/ Maven作用 Maven是专门用于管理和构建Java项目的工具,它的主要功能有&#x…

C语言——从头开始——深入理解指针(1)

一.内存和地址 我们知道计算上CPU(中央处理器)在处理数据的时候,是通过地址总线把需要的数据从内存中读取的,后通过数据总线把处理后的数据放回内存中。如下图所示: 计算机把内存划分为⼀个个的内存单元,每…

vulhub中Apache Log4j Server 反序列化命令执行漏洞复现(CVE-2017-5645)

Apache Log4j是一个用于Java的日志记录库,其支持启动远程日志服务器。Apache Log4j 2.8.2之前的2.x版本中存在安全漏洞。攻击者可利用该漏洞执行任意代码。 1.我们使用ysoserial生成payload,然后直接发送给your-ip:4712端口即可。 java -jar ysoserial-…

Android EditText关于imeOptions的设置和响应

日常开发中,最绕不开的一个控件就是EditText,随之避免不了的则是对其软键盘事件的监听,随着需求的不同对用户输入的软键盘要求也不同,有的场景需要用户输入完毕后,有一个确认按钮,有的场景需要的是回车&…

GPIO控制和命名规则

Linux提供了GPIO子系统驱动框架,使用该驱动框架即可灵活地控制板子上的GPIO。 GPIO命名 泰山派开发板板载了一个40PIN 2.54间距的贴片排针,排针的引脚定义兼容经典40PIN接口。 在后续对GPIO进行操作前,我们需要先了解k3566的GPIO命名规则&a…

Unity开发过程中背包系统性能优化方案

在游戏开发中,背包系统是非常常见并且重要的一部分。然而,如果不合理地设计与实现,它可能导致游戏运行效率降低,影响玩家的游戏体验。在Unity中,背包系统的优化需要考虑以下几个方面: 1. 使用对象池&#x…