Shell三剑客:文本过滤工具——grep

一、简介:过滤,查找文档中的内容

二、分类

  • grep
  • egrep——扩展支持正则
  • \w所有字母与数字,称为字符[a-zA-Z0-9] 'l[a-zA-Z0-9]*ve' === 'l\w*ve'
  • \W所有字母与数字之外的字符,称为非字符 'love[^a-zA-Z0-9]+' === 'love\W+'
  • \b词边界 '\<love\>' === '\blove\b'
  • fgrep——不支持正则
[root@localhost ~]# fgrep . 1.txt 
l.ve

三、返回值 

  • 0 是找到
  • 1 是没有
  • 2 找到地不对
[root@localhost ~]# grep 'root' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]# echo $?
0
[root@localhost ~]# grep 'root1' /etc/passwd
[root@localhost ~]# echo $?
1
[root@localhost ~]# grep 'root' /etc/passwd1
grep: /etc/passwd1: 没有那个文件或目录
[root@localhost ~]# echo $?
2

 

四、参数 

#grep -q 静默
[root@localhost ~]# grep -q love 1.txt 
[root@localhost ~]# echo $?
0

#grep -v 取反
[root@localhost ~]# grep -v love 1.txt 
#qian
#yoa
#huang
kai
kong
cai

#grep - R 可以查目录下面的
[root@localhost ~]# grep -R kai /home
/home/1.txt:kai

#grep -o 只找到这个关键字
[root@localhost ~]# grep -o love 1.txt 
love
love

#grep - B2 前两行
[root@localhost ~]# grep -B2 love 1.txt 
abcdefj
adc
love

#grep - A2 后两行
[root@localhost ~]# grep -A2 love 1.txt 
love
Love
1ove

#grep -C2 上下两行
[root@localhost ~]# grep -C2 love 1.txt 
abcdefj
adc
love
Love

#egrep -l 只要文件名
[root@localhost ~]# egrep -l -R kai /home
/home/1.txt

#egrep -n 带行号
[root@localhost ~]# grep -n love 1.txt 
14:love
21:loveable

 

 

 

五、示例 

//grep -E或 egrep 使用
# egrep 'NW' datafile.txt
# egrep 'NW' d*.txt
# egrep '^n' datafile.txt
# egrep '4$' datafile.txt
# egrep TB Savage datafile.txt
# egrep 'TB Savage' datafile.txt
# egrep '5\..' datafile.txt
# egrep '1.5' datafile.txt
# egrep'^[we]' datafile.txt
# egrep '[^0-9]' datafile
# egrep '[A-Z][A-Z] [A-Z]' datafile
# egrep'ss*'datafile
# egrep '[a-Z](9)' datafile L
# egrep I<north' datafile
# egrep l<northi>' datafile
# egrep l<[a-rj.*nl>' datafile
# egrep '^nlw*\W' datafile
# egrep lbnorthib' datafile
# egrep 'NW | EA' datafile
# egrep '3+' datafile
# egrep '2\.?[0-9]' datafile
# egrep(no)+' datafile
# egrep 'S(hlu)' datafile
# egrep 'Sh lu' datafile

 

 

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

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

相关文章

力扣每日一题day32[104. 二叉树的最大深度]

给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3示例 2&#xff1a; 输入&#xff1a;root [1,null,2] 输出…

winform中也可以这样做数据展示✨

1、前言 在做winform开发的过程中&#xff0c;经常需要做数据展示的功能&#xff0c;之前一直使用的是gridcontrol控件&#xff0c;今天想通过一个示例&#xff0c;跟大家介绍一下如何在winform blazor hybrid中使用ant design blazor中的table组件做数据展示。 2、效果 先来…

MYSQL练题笔记-子查询-换座位

一、题目相关内容 1&#xff09;相关的表和题目 2&#xff09;帮助理解题目的示例&#xff0c;提供返回结果的格式 二、自己初步的理解 没啥思路&#xff0c;我还没做过交换的这种题&#xff0c;所以我觉得这类交换的题以后值得做一个合集&#xff0c;是有点灵活度在里面的&a…

computed 和 watch 的奇妙世界:让数据驱动你的 Vue 应用(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

海思平台isp之ccm标定

文章目录 1、raw图采集2、ccm标定2.1、标定参数配置2.2、标定效果优化2.2.1、优化方式一2.2.2、优化方式二2.2.3、优化方式三1、raw图采集 raw图采集步骤及标准,请参考文章 《海思平台isp之ccm标定》。2、ccm标定 2.1、标定参数配置 (1)图像基本参数 (2)黑电平设置 (…

VR播控系统深耕VR教学领域,助力开启未来新课堂

作为提升教育质量的技术之一&#xff0c;VR技术已经逐渐成为培养新一代人才、提升教学质量的重要方式&#xff0c;相比于传统教育&#xff0c;VR技术在教学方面的应用&#xff0c;所带来的变化和效果提升都是非常明显的&#xff0c;尤其是VR播控系统的上线&#xff0c;作为VR教…

CDH6.3.2安装

文章目录 [toc]一、CM简介1、ClouderaManager的概念2、ClouderaManager的功能3、ClouderaManager的架构 二、准备清单1、部署步骤2、集群规划3、软件环境准备 三、安装清单1、操作系统iso包2、JDK包3、MySQL包4、CM和CDH包5、部署ansible 四、基础环境准备1、配置网络2、配置ho…

Doris学习笔记

目录 简介 特点 MPP数据库 PB和EB都是用来衡量数据存储量的单位。 秒级响应 Google Mesa Apache Impala 支持标准sql且兼容mysql协议 ROLAP OLAP&#xff08;On-Line Analytical Processing&#xff0c;联机分析处理&#xff09; ROLAP&#xff08;Relational On-Line An…

理解Mysql索引原理及特性

作为开发人员&#xff0c;碰到了执行时间较长的sql时&#xff0c;基本上大家都会说”加个索引吧”。但是索引是什么东西&#xff0c;索引有哪些特性&#xff0c;下面和大家简单讨论一下。 1 索引如何工作&#xff0c;是如何加快查询速度 索引就好比书本的目录&#xff0c;提高数…

智能优化算法应用:基于差分进化算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于差分进化算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于差分进化算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.差分进化算法4.实验参数设定5.算法结果6.…

FTP、U盘等传统数据安全摆渡方法的6个弊端

数据安全摆渡&#xff0c;即数据在不同的网络之间&#xff0c;进行安全流转。做网间隔离的初衷&#xff0c;就是为了保护数据安全&#xff0c;但是在数据摆渡时&#xff0c;除了安全&#xff0c;企业还是需要考虑其他的要素&#xff0c;比如可靠性、易用性、兼容性等等。而传统…

linux 防火墙systemctl (个人笔记)

查看 systemctl status firewalld 开启 systemctl start firewalld 关闭 systemctl stop firewalld.service 查看所有 firewall-cmd --zonepublic --list-ports 开放端口&#xff1a;// --permanent 永久生效,没有此参数重启后失效 firewall-cmd --zonepublic --add-port9527/…

c语言 词法分析器《编译原理》课程设计 文本形式保存

词法分析器的功能输入源程序&#xff0c;按照构词规则分解成一系列单词符号。单词是语言中具有独立意义的最小单位&#xff0c;包括关键字、标识符、运算符、界符和常量等。 (1) 关键字&#xff1a;是由程序语言定义的具有固定意义的标识符。例如begin&#xff0c;end&#xf…

SpringBoot中日志的使用log4j2

SpringBoot中日志的使用log4j2 1、log4j2介绍 Apache Log4j2 是对 Log4j 的升级&#xff0c;它比其前身 Log4j 1.x 提供了重大改进&#xff0c;并提供了 Logback 中可用的许多改 进&#xff0c;同时修复了 Logback 架构中的一些问题&#xff0c;主要有&#xff1a; 异常处理…

GPDB - 高可用特性 - 同步复制与异步复制

GPDB - 高可用特性 - 同步复制与异步复制 GreenPlum是基于PostgreSQL的分布式数据库&#xff0c;master用于接收用户请求并生成执行计划与分发&#xff0c;当然也可以参与计算&#xff1b;而segment则用于存储数据&#xff0c;将计算的结果传递给master。Segment本身具有高可用…

5.4 Linux KickStart 无人值守安装

1、概念介绍 搭建无人执行安装服务器需要从装网络引导安装操作系统&#xff0c;这样我们就可以不必走到机器那里插入CD&#xff0d;ROM光盘或者U盘手动一台一台安装操作系统&#xff0c;使用网络引导批量部署服务器操作系统。 服务架构&#xff1a;PXE DHCP TFTP Kickstar…

dockerfite创建镜像---INMP+wordpress

目录 搭建dockerfile---lnmp 创建nginx镜像 运行 创建数据库镜像 运行 ​编辑 创建php镜像 运行 搭建dockerfile---lnmp 在192.168.10.201 服务IP地址nginx 172.111.0.10 dockernginxmysql172.111.0.20dockermysqlphp172.111.0.30dockerphp 创建nginx镜像 路径 vim /…

python基本数据类型(一)-字符串

1.字符串 字符串就是一系列字符&#xff0c;在Python中&#xff0c;用引号括起的都是字符串&#xff0c;其中的引号可以是单引号&#xff0c;也可以是双引号&#xff0c;如下所示&#xff1a; "This is a string." This is also a string.这种灵活性让你能够在字符…

【产品经理】产品增效项目落地,项目反哺产品成长

产品和项目是相辅相成的关系&#xff0c;产品的规范、成熟&#xff0c;为项目的快速落地提供支撑&#xff0c;项目的落地反哺产品&#xff0c;促进产品的成长成熟。 软件工程的初期是&#xff0c;我们需要什么&#xff0c;就立项项目&#xff0c;通过项目实现需要。 随着项目的…

用实例域代替序数

在Java中&#xff0c;枚举类型的ordinal()方法返回枚举常量的序数&#xff08;即其在枚举声明中的位置&#xff09;。在某些情况下&#xff0c;使用实例域&#xff08;instance field&#xff09;代替序数可能更加安全和易读。以下是一个示例&#xff0c;演示如何使用实例域代替…