Linux文本三剑客---grep

grep(从文本或字符串种过滤特定内容。)

  格式:Usage: grep [OPTION]... PATTERNS [FILE]...

常用选项:

-E 等价于 egrep 扩展正则
-i 忽略大小写
-w 匹配单词
-o 仅显示匹配内容
-r 递归匹配
-c 统计匹配的行数
-v 取反
-n 行号
-A n 后面n行
-B n 前面n行
-C n 前后多少行

文件格式:

第1列:城市位置编号。

第2列:月份。

第3列:存储代码及出库年份。

第4列:产品代号。

第5列:产品统一标价。

第6列:标识号。

第7列:合格数量。

file.txt文件内容:

48      Dec     3BC1977 LPSX   68.00   LVX2A   138

483     Sept    5AP1996 USP    65.00   LVX2C   189

47      Oct     3ZL1998 LPSX   43.00   KVM9D   512

219     dec     2CC1999 CAD    23.00   PLV2C   68

484     nov     7PL1996 CAD    49.00   PLV2C   234

483     may     5PA1998 USP    37.00   KVM9D   644

216     sept    3ZL1998 USP    86.00   KVM9E   234

1、含有“48”字符串的行的总数

#-c选项告诉grep只打印出匹配行的数量

[root@node1 ~]# grep -c '^48' file.txt    

2、显示含有“48”字符串的所有行的行号

#-n选项告诉grep除了显示匹配的行之外,还要显示每一行的行号

[root@node1 ~]# grep -n '^48' file.txt

3、精确匹配只含有“48”字符串的行

#-w选项告诉grep只选择那些包含形成整个单词的匹配项的行

[root@node1 ~]# grep -w 48 file.txt

4、抽取代码为484和483的城市位置

[root@node1 ~]# grep '48[34]' file.txt

5、显示使行首不是4或8

#在正则表达式中,^符号代表行的开头。当它放在方括号[]内部时,它表示否定

[root@node1 ~]# grep '^[48]' file.txt

[root@node1 ~]# grep '^[^48]' file.txt

6、显示含有九月份(Sept)的行grep

[root@node1 ~]# grep -i 'sept' file.txt

7   显示以K开头,以D结尾的所有代码

#在正则表达式中,.符号通常表示任意字符(除了换行符),*符号表示前面的元素重复0次或多次。所以,.*表示任意数量的任意字符。

[root@node1 ~]# grep 'K.*D' file.txt

8、显示头两个是大写字母,中间两个任意,并以C结尾的代码

[root@node1 ~]# grep -E '[A-Z]{2}..C' file.txt

9、查询【存储代码及出库年份(第三列)】所有以5开始以1996或1998结尾的所有记录

[root@node1 ~]# grep '5.*199[68]' file.txt

10、显示/etc/rc.d/rc.sysinit文件中以不区分大小的h开头的行;

[root@node1 ~]# grep -i '^h' /etc/passwd

11、显示/etc/passwd中以sh结尾的行;

#  $  表示行尾

[root@node1 ~]# grep 'sh$' /etc/passwd

12、显示/etc/fstab中以 #开头,且后面跟一个或多个空白字符,而后又跟了任意非空白字符的行;

#在正则表达式中,[:space:]是一个预定义的字符类,它匹配任何空白字符

[root@node1 ~]# egrep "^#[[:space:]]+[^[:space:]]*" /etc/fstab

13、查找/etc/rc.d/rc.local中包含“以to开始并以to结尾”的字串行;

[root@node1 ~]# egrep '(to).*\1' /etc/rc.d/rc.local

14、查找/etc/inittab中含有“以s开头,并以d结尾的单词”模式的行;

[root@node1 ~]# egrep -w  's[a-z]*d' /etc/inittab

15、显示/var/log/secure文件中包含“Failed”或“FAILED”的行

[root@node1 ~]# grep -i 'Faild' /var/log/secure

16、在/etc/passwd中取出默认shell为bash

[root@node1 ~]# grep 'bash$' /etc/passwd

17、以长格式列出/etc/目录下以ns开头、.conf结尾的文件信息

[root@node1 ~]#  ll /etc/ | grep '^.*/ns.*\.conf$'

18、匹配/etc/services中开头结尾字母一样的单词

root@node1 ~]# egrep -o -w "([a-z])[a-z]+\1"  /etc/services

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

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

相关文章

仰暮计划|“老师说我其实很聪明,就是家里太穷了没条件,不然我现在也是……”

吴桂荣老人回忆录 在我外婆家的时候,我跟几位老奶奶坐在门口一起聊天,我询问她们是否能帮助我完成一份作业,她们笑着答应了,最后我选择了其中的一位老奶奶作为了解对象,她邀请我去家中交谈。通过了解,我得知…

HCIA学习第四天:静态路由与动态路由

静态路由: 选路原则:尽量选择路径最短的路由条目 扩展配置: 1、负载均衡:当路由器访问同一个目标且目标且目标具有多条开销相似的路径时,可以让设备将流量拆分后延多条路径同时进行传输,以达到叠加带宽的…

(七)springboot实战——springboot3集成R2DBC实现webflux响应式编程服务案例

前言 本节主要内容是关于使用新版springboot3集成响应式数据库R2DBC,完成响应式web服务案例。需要注意的是,此次项目使用的JDK版本是JDK17,springboot版本使用3.2.2版本,数据库使用关系型数据库mysql。WebFlux 是一个基于响应式编程模型的框…

K8s-持久化(持久卷,卷申明,StorageClass,StatefulSet持久化)

POD 卷挂载 apiVersion: v1 kind: Pod metadata:name: random-number spec:containers:- image: alpinename: alpinecommand: ["/bin/sh","-c"]args: ["shuf -i 0-100 -n 1 >> /opt/number.out;"]volumeMounts:- mountPath: /optname: da…

华为机考入门python3--(3)牛客3-明明的随机数

分类:集合、排序 知识点: 集合添加元素 set.add(element) 集合转列表 list(set) 列表排序 list.sort() 题目来自【牛客】 N int(input().strip()) nums set()for i in range(N):nums.add(int(input().strip()))# 集合转列表 nums_list l…

眼底增强型疾病感知蒸馏模型 FDDM:无需配对,fundus 指导 OCT 分类

眼底增强型疾病感知蒸馏模型 FDDM:fundus 指导 OCT 分类 核心思想设计思路训练和推理 效果总结子问题: 疾病特定特征的提取与蒸馏子问题: 类间关系的理解与建模 核心思想 论文:https://arxiv.org/pdf/2308.00291.pdf 代码:https://github.c…

【笔试常见编程题02】字符串中找出连续最长的数字串、数组中出现次数超过一半的数字、计算糖果、进制转换

1. 字符串中找出连续最长的数字串 读入一个字符串str,输出字符串str中的连续最长的数字串 输入描述 个测试输入包含1个测试用例,一个字符串str,长度不超过255。 输出描述 在一行内输出str中里连续最长的数字串。 示例 1 输入 abcd12345ed125s…

java数据结构与算法刷题-----LeetCode328. 奇偶链表

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 解题思路 将链表按奇偶顺序,分成两个链表。最后将偶数链表放在…

计算机网络-编制与调制(基带信号 基带传输 宽度信号 宽度传输 编码 调制 )

文章目录 基带信号与宽带信号编码与调制数字数据编码为数字信号数字数据调制为模拟信号模拟数据编码为数字信号模拟数据调制为模拟信号小结 基带信号与宽带信号 信道上传输的信号除了可以分为数字信号和模拟信号,也可以分为基带信号和宽带信号,只是分类…

【每日一题】最大合金数

文章目录 Tag题目来源解题思路方法一:二分枚举答案 写在最后 Tag 【二分枚举答案】【数组】【2024-01-27】 题目来源 2861. 最大合金数 解题思路 方法一:二分枚举答案 思路 如果我们可以制造 x 块合金,那么一定也可以制造 x-1 块合金。于…

支持下一代网络IpV6的串口服务器,IpV6串口485接口转网口

和IPv4比较,IPv6有两个极具吸引力的特点:一个是IPv6采用的128位地址格式,而IPv4采用32位的地址格式,因此IPv6使地址空间增大了296;另一个是IPv6物联网数据业务具有更强的支持能力,成为未来物联网的重要协议…

Ps:创建基于饱和度的蒙版

能够区分图像上哪些区域的饱和度高,哪些区域的饱和度低,在调色过程中是相当有用的。 比如,使得饱和度高的区域更加饱和,可增加图像色彩反差,让画面更引人注目。 或者,使得饱和度区域趋于饱和,让…

技术书评和笔记【01】脑机接口-电路与系统 【2020版】

前言: 荷兰作者,Amir Zjajo博士,毕业于荷兰代尔夫特理工大学,方向 面向移动健康的低功耗混合型号电路与系统,以及,面向认知的神经形态电路。 ,脑机接口 - 电路与系统一书,系统介绍了,脑机接口电路与系统的实现技术,尤其,提到了量产和设计的问题,难能可贵,摘录如…

JVM篇----第九篇

系列文章目录 文章目录 系列文章目录前言一、分代收集算法二、新生代与复制算法三、老年代与标记复制算法前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 一、分代…

MySQL-删除重复数据

在实际应用中,遇到一个这样的问题,MySQL中存储的数据为资讯类数据,在页面展示时会出现多个平台的新闻报导相同的内容,导致页面会出现重复数据。因为数据是每天定期更新,所以最快捷有效的方式是在更新完数据后增加一个去…

YOLOv8融合改进 更换检测头同时改进C2f模块

一、Detect_DyHead检测头和C2f-EMSC,C2f-EMSCP模块 详细介绍和代码在往期的博客里: Detect_DyHead: (YOLOv8改进检测头Detect为Detect_Dyhead-CSDN博客) C2f-EMSC和C2f-EMSCP: (YOLOv8改进之多尺度转换模块C2f-EMSC和C2f-EMSCP-CSDN博客) 二、算法实现 1、将检测…

QT之 QDebug 调试(一)

在QT中&#xff0c;进行调试&#xff0c;则需要在头文件地方加上 #include <QDebug> 加上之后&#xff0c;在编译之后则其输出的信息则在应用程序输出那里显示信息。 其QDebug 信息调试则如&#xff1a; qDebug() << " 需要插入的信息 "…

RPC教程 7.服务发现与注册中心

0.前言 这一节的内容只能解决只有一个服务的情况。要是有多个服务(即是多个结构体&#xff09;这种就解决不了&#xff0c;也即是没有服务ip地址和服务实例的映射关系。 1.为什么需要注册中心 在上一节中&#xff0c;客户端想要找到服务实例的ip,需要硬编码把ip写到代码中。…

猿媛员的专属春联来咯

我们“因程序汇聚&#xff0c;因猿份相识”&#xff0c;今天来给辛苦了一年的“猿媛员”们送上几幅恶搞对联&#xff0c;为图一笑 &#x1f604; 闲言少叙&#xff0c;上对联 龙行多福 上联&#xff1a;龙龙龙龙龙龙龙 下联&#xff1a;福福福福福福福 形象版 上联&#…

centos 7安装MySQl

本文参考借鉴&#xff1a;https://cloud.tencent.com/developer/article/2353312&#xff0c;非常赞&#xff01; 为了避免权限不足的问题&#xff0c;建议切换至root用户进行安装 1.MySQL的清理与安装 查看是否存在MySQL服务 安装mysql之前&#xff0c;需要先看看要安装系…