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,一经查实,立即删除!

相关文章

react 什么是h函数

React 中的 H 函数,通常是指 Hooks(钩子)函数。Hooks 是 React 16.8 版本引入的新特性,允许你在不写 class 的情况下使用 state 以及其他的 React 特性。Hooks 提供了一种更简洁、更直观的方式来使用 React 的功能,使得…

11.2 Web开发_CSS入门(❤❤)

11.2 Web开发_CSS入门❤❤ 1. CSS简介1.1 基础案例2. CSS书写的位置2.1 行内式2.2 内嵌式2.3 外链式3. CSS基础选择器3.1 标签选择器3.2 id选择器3.3 类选择器3.4 选择器优先级3.5 通配符选择器4. 多类名5. 样式的两种特性5.1 层叠性

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

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

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…

04-Nacos-服务注册基于spring boot实现

官方参考 在不依赖spring cloud 组件基础上&#xff0c;单独的微服务项目&#xff0c;实现nacos接入 1、依赖文件pom.xml <dependency><groupId>com.alibaba.boot</groupId><artifactId>nacos-discovery-spring-boot-starter</artifactId><…

RUST笔记: 动态链接库的创建和使用

生成动态链接库 // https://github.com/vvvm23/funny-shapes # 项目元信息 [package] name "funnyshapes" # 项目名称 version "0.1.0" # 版本号 edition "2021" # Rust语言版本# 更多配置信息可查阅&#xff1…

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

分类&#xff1a;集合、排序 知识点&#xff1a; 集合添加元素 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&#xff1a;fundus 指导 OCT 分类 核心思想设计思路训练和推理 效果总结子问题: 疾病特定特征的提取与蒸馏子问题: 类间关系的理解与建模 核心思想 论文&#xff1a;https://arxiv.org/pdf/2308.00291.pdf 代码&#xff1a;https://github.c…

【模板】拓扑排序

Problem: 【模板】拓扑排序 文章目录 思路解题方法复杂度Code 思路 拓扑排序模板 解题方法 初始化一个队列&#xff0c;将所有入度为0的顶点入队。从队列中取出一个顶点&#xff0c;并将其输出。对于该顶点的所有出边&#xff0c;将出边的终点的入度减1。如果某个顶点的入度变为…

269. 火星词典

Problem: 269. 火星词典 文章目录 思路解题方法复杂度Code 思路 首先&#xff0c;我们先将所有单词中出现的字符标记为 0&#xff0c;没有出现的标记为 1。然后&#xff0c;我们开始建图&#xff0c;对于每一个单词对&#xff0c;我们比较它们的前缀&#xff0c;直到找到第一个…

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

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

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

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

(每日持续更新)jdk api之InterruptedIOException基础、应用、实战

博主18年的互联网软件开发经验,从一名程序员小白逐步成为了一名架构师,我想通过平台将经验分享给大家,因此博主每天会在各个大牛网站点赞量超高的博客等寻找该技术栈的资料结合自己的经验,晚上进行用心精简、整理、总结、定稿,每天都会整理到12点,为了就是能让大家能够真…

Python无人诊断治疗全套系统

Python无人诊断治疗全套系统的研发开发对于医疗行业具有重要性。以下是其重要性的几个方面&#xff1a; 提高诊断精确性&#xff1a;无人诊断系统利用大数据分析和人工智能技术&#xff0c;能够通过对病例的分析和比对&#xff0c;提供更准确的诊断结果。相比于传统的人工诊断&…

LeetCode第500题 - 键盘行

题目 给定一个单词列表&#xff0c;只返回可以使用在键盘同一行的字母打印出来的单词。 示例&#xff1a; 输入: [“Hello”, “Alaska”, “Dad”, “Peace”] 输出: [“Alaska”, “Dad”] 解答 class Solution {public String[] findWords(String[] words) {char[][] keybo…

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

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

【每日一题】最大合金数

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

【Spring Boot 3】【@Scheduled】动态修改定时任务时间

【Spring Boot 3】【@Scheduled】动态修改定时任务时间 背景介绍开发环境开发步骤及源码工程目录结构总结背景 软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习…