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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue2 事件总线

原图下载:https://download.csdn.net/download/weixin_47401101/88788636

如何在Shopee平台上进行宠物类目的选品丨shopee宠物选品

在Shopee平台上进行宠物类目的选品是一个重要的任务,它直接关系到卖家的销售业绩和市场竞争力。为了成功选择适合的宠物用品,在选品过程中,卖家可以遵循以下策略: 先给大家推荐一款shopee知虾数据运营工具知虾免费体验地址&#…

ZYNQ AC7020C的“点LED”实验

一、创建 Vivado 工程 1、启动 Vivado 2、在 Vivado 开发环境里点击“Create New Project”,创建一个新的工程 3、弹出一个建立新工程的向导,点击“Next” 4、在弹出的对话框中输入工程名和工程存放的目录。需要注意工程路径“Project location”不能有…

瑞丽杂志引领潮流,VOSS眼镜概念店开启奢华新纪元!

近日,由《瑞丽》杂志社举办的2023第4届瑞丽轻奢品牌大赛,以“轻奢•悦藏”为主题的大赛已圆满结束,VOSS眼镜荣获:2023瑞丽轻奢品牌大赛「轻奢时尚风格奖」,作为眼镜行业唯一获此奖项的品牌,VOSS眼镜对此表示…

C++初阶入门之命名空间和缺省参数的详细解析

个人主页:点我进入主页 专栏分类:C语言初阶 C语言进阶 数据结构初阶 Linux C初阶 欢迎大家点赞,评论,收藏。 一起努力,一起奔赴大厂 目录 一.前言 二.命名空间 2.1命名冲突的例子 2.2解决方案 2.3命…

QT发生弹出警告窗口

QTC开发程序弹出警告窗口&#xff0c;如上图 实施代码&#xff1a; #include <QMessageBox> int main() {// 在发生错误的地方QMessageBox::critical(nullptr, "错误", "发生了一个错误&#xff0c;请检查您的操作。");}上面的文字可以更改&#x…

(2024,预训练和微调扩散,图编码器,图特征与CLIP特征对齐)场景图到图像合成:集成 CLIP 指导与扩散模型中的场景图条件

Scene Graph to Image Synthesis- Integrating CLIP Guidance with Graph Conditioning in Diffusion Models 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 3. 方法 3.1 扩…

配置ARP安全综合功能示例

组网图形 ARP安全简介 ARP&#xff08;Address Resolution Protocol&#xff09;安全是针对ARP攻击的一种安全特性&#xff0c;它通过一系列对ARP表项学习和ARP报文处理的限制、检查等措施来保证网络设备的安全性。ARP安全特性不仅能够防范针对ARP协议的攻击&#xff0c;还可以…

Servet的基础学习

Servet的基础学习 servet的简单介绍 Servlet 是运行在 Web 服务器或应用服务器上的程序&#xff0c;它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。使用 Servlet&#xff0c;您可以收集来自网页表单的用户输入&#xff0…

插槽(64-67)

文章目录 插槽1.插槽 - 默认插槽(组件内可以定制一处结构)2.插槽 - 后备内容&#xff08;默认值&#xff09;3.插槽 - 具名插槽(组件内可以定制多处结构)4.作用域插槽(插槽的一个传参语法) 插槽 插槽分类:默认插槽和具名插槽 1.插槽 - 默认插槽(组件内可以定制一处结构) 作用…

PyTorch初探:基本函数与案例实践

正文&#xff1a; 在熟悉了PyTorch的安装和环境配置后&#xff0c;接下来让我们深入了解PyTorch的基本函数&#xff0c;并通过一个简单的案例来实践这些知识。 1. 基本函数 PyTorch的核心是张量&#xff08;Tensor&#xff09;&#xff0c;它类似于多维数组&#xff0c;但可以…

2024年最热门的十个AI对话聊天模型网站

1、百度文言一心 文言一心”是一个基于百度自研的ERNIE模型的聊天机器人。 “文心一言”是百度依托飞桨、文心大模型的技术研发的知识增强大语言模型&#xff0c;能够与人对话互动&#xff0c;回答问题&#xff0c;协助创作&#xff0c;高效便捷地帮助人们获取信息、知识和灵感…

Springboot注解@Aspect(二)JoinPoint 使用详解

目录 JoinPoint 的作用 JoinPoint 常用方法 示例 JoinPoint 的子类和关联类 JoinPoint 的作用 在 Spring AOP 中&#xff0c;JoinPoint 接口代表了一个程序执行的点&#xff0c;比如方法执行或异常处理。当使用 AOP 通知&#xff08;Advice&#xff09;时&#xff0c;你可以…

环形链表的检测与返回

环形链表 王赫辰/c语言 - Gitee.com 快慢指针的差距可以为除一以外的数吗&#xff1f;不可以如果差奇数则无法发现偶数环&#xff0c;是偶数无法发现奇数环&#xff0c;本题思路为指针相遇则为环&#xff0c;而以上两种情况会稳定差一&#xff0c;导致指针永不相遇 最终返回…

uniapp组件库Line 线条 的适用方法

目录 #平台差异说明 #基本使用 #线条类型 1.3.7 #兼容性 #API #Props 此组件一般用于显示一根线条&#xff0c;用于分隔内容块&#xff0c;有横向和竖向两种模式&#xff0c;且能设置0.5px线条&#xff0c;使用也很简单。 #平台差异说明 AppH5微信小程序支付宝小程序百…

阿里云幻兽帕鲁服务器4核16G配置报价

自建幻兽帕鲁服务器租用价格表&#xff0c;2024阿里云推出专属幻兽帕鲁Palworld游戏优惠服务器&#xff0c;配置分为4核16G和4核32G服务器&#xff0c;4核16G配置32.25元/1个月、10M带宽66.30元/1个月、4核32G配置113.24元/1个月&#xff0c;4核32G配置3个月339.72元。ECS云服务…

华为机考入门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…

3.3 实验三:以太网链路聚合实验

HCIA-Datacom实验指导手册&#xff1a;3.3 实验三&#xff1a;以太网链路聚合实验 一、实验介绍&#xff1a;二、实验拓扑&#xff1a;三、实验目的&#xff1a;四、配置步骤&#xff1a;步骤 1 掌握使用手动模式配置链路聚合的方法步骤 2 掌握使用静态 LACP 模式配置链路聚合的…

C语言——动态内存管理

大家好&#xff0c;我是残念&#xff0c;希望在你看完之后&#xff0c;能对你有所帮助&#xff0c;有什么不足请指正&#xff01;共同学习交流 本文由&#xff1a;残念ing原创CSDN首发&#xff0c;如需要转载请通知 个人主页&#xff1a;残念ing-CSDN博客&#xff0c;欢迎各位→…

如何在前端项目里接入Sentry监控系统并通过企业微信通知

能不能让用户录个屏过来呀&#xff1f; 用户使用的是什么机型的手机&#xff1f; 用户使用的什么浏览器呀&#xff1f; 用户的网络是什么情况&#xff1f; … … 线上出现问题时&#xff0c;技术部和业务部同学之间的对话诸如此类…业务同学也很栓Q呀&#xff0c;硬着头皮去问客…