Linux入门(三)

Linux grep 命令

1: 作用

​ grep是一种文本搜索工具,它能使用特定的搜索模式,包括[正则表达式]搜索文本,并默认输出匹配行。

​ windows类似的命令是findstr.

2:语法

grep -options(参数) pattern(关键词) files(文本文件)

3:主要参数

可以通过grep --help来查看grep相关命令

用法: grep [选项]... 模式 [文件]...
在每个<文件>中查找给定<模式>。
例如:grep -i 'hello world' menu.h main.c
<模式>可以包括多个模式字符串,使用换行符进行分隔。模式选择与解释:-E, --extended-regexp     <模式> 是扩展正则表达式-F, --fixed-strings       <模式> 是字符串-G, --basic-regexp        <模式> 是基本正则表达式-P, --perl-regexp         <模式>Perl 正则表达式-e, --regexp=<模式>       用指定的<模式>字符串来进行匹配操作-f, --file=<文件>         从给定<文件>中取得<模式>-i, --ignore-case         在模式和数据中忽略大小写--no-ignore-case      不要忽略大小写(默认)-w, --word-regexp         强制<模式>仅完全匹配字词-x, --line-regexp         强制<模式>仅完全匹配整行-z, --null-data           数据行以一个 0 字节结束,而非换行符杂项:-s, --no-messages         不显示错误信息-v, --invert-match        选中不匹配的行-V, --version             显示版本信息并退出--help                显示此帮助并退出输出控制:-m, --max-count=<次数>    得到给定<次数>次匹配后停止-b, --byte-offset         输出的同时打印字节偏移-n, --line-number         输出的同时打印行号--line-buffered       每行输出后刷新输出缓冲区-H, --with-filename       为输出行打印文件名-h, --no-filename         输出时不显示文件名前缀--label=<标签>        将给定<标签>作为标准输入文件名前缀-o, --only-matching       只显示行中非空匹配部分-q, --quiet, --silent     不显示所有常规输出--binary-files=TYPE   设定二进制文件的 TYPE(类型);TYPE 可以是 'binary''text' 或 'without-match'-a, --text                等同于 --binary-files=text-I                        等同于 --binary-files=without-match-d, --directories=ACTION  读取目录的方式;ACTION 可以是`read', `recurse',或`skip'-D, --devices=ACTION      读取设备、先入先出队列、套接字的方式;ACTION 可以是`read'或`skip'-r, --recursive           等同于--directories=recurse-R, --dereference-recursive       同上,但遍历所有符号链接--include=GLOB        只查找匹配 GLOB(文件模式)的文件--exclude=GLOB        跳过匹配 GLOB 的文件--exclude-from=FILE   跳过所有匹配给定文件内容中任意模式的文件--exclude-dir=GLOB    跳过所有匹配 GLOB 的目录-L, --files-without-match  只打印没有匹配上的<文件>的名称-l, --files-with-matches  只打印有匹配的<文件>的名称-c, --count               只打印每个<文件>中的匹配行数目-T, --initial-tab         行首制表符对齐(如有必要)-Z, --null<文件>名最后打印空字符文件控制:-B, --before-context=NUM  打印文本及其前面NUM-A, --after-context=NUM   打印文本及其后面NUM-C, --context=NUM         打印NUM 行输出文本-NUM                      等同于 --context=NUM--color[=WHEN],--colour[=WHEN]       使用标记高亮匹配字串;WHEN 可以是“always”、“never”或“auto”-U, --binary              不要清除行尾的 CR 字符(MSDOS/Windows)若给定<文件>为“-”,则从读取标准输入。  若无<文件>参数,则除非处于
递归工作模式视为从“.”读取之外,一律视为从“-”读取。如果提供了少于
两个<文件>参数,则默认启用 -h 选项。如果有任意行(或者指定了 -L 选项
并有任意文件)被匹配,则退出状态为 0,否则为 1;如果有错误产生,且未指
定 -q 参数,则退出状态为 2

4:示例

创建test.txt文件,写入部分内容如下:

请将错误报告给:bug-grep@gnu.org。翻译问题请报告至 <i18n-zh@googlegroups.com>。
GNU grep 主页: <http://www.gnu.org/software/grep/>
GNU 软件的通用帮助: <https://www.gnu.org/gethelp/>
4.1过滤基础文件
ls |grep test

grep过滤当前目录下test文件夹/文件。

4.2 忽略大小写
grep -i  "gnu" test.txt

在这里插入图片描述

grep -i --no-ignore-case  "gnu" test.txt

在这里插入图片描述

4.3 显示行数以及命中行的文件
grep -n "gnu" test.txt

在这里插入图片描述

grep -n "错误" test.txt

在这里插入图片描述

4.4 选中不匹配的行
grep -v "错误" test.txt

在这里插入图片描述

4.5 得到给定<次数>次匹配后停止
grep -m 1  "gnu" test.txt

匹配到一次后停止:在这里插入图片描述

grep -m 10  "gnu" test.txt

在这里插入图片描述

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

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

相关文章

python的文件目录操作 1

我们在实际开发中&#xff0c;经常需要对文件进行读取、遍历、修改等操作&#xff0c;通过 python 的标准内置os模块&#xff0c;能够以简洁高效的方式完成这些操作。常见的操作整理如下&#xff1a; 文件夹操作&#xff1a;包括文件夹的创建、修改&#xff08;改名/移动&…

WPF创建自定义控件编译通过但是找不到资源

报错&#xff1a; 原因: 路径写错了&#xff1a; 不是这样&#xff1a; Source"pack://application:,,,/Controls/Styles/xTabControl.xaml" 而是这样&#xff1a; Source"pack://application:,,,/项目名;component/Controls/Styles/xTabControl.xaml …

idea一键打包docker镜像并推送远程harbor仓库的方法(包含spotify和fabric8两种方法)--全网唯一正确,秒杀99%水文

我看了很多关于idea一键打包docker镜像并推送harbor仓库的文章&#xff0c;不论国内国外的&#xff0c;基本上99%都是瞎写的&#xff0c; 这些人不清楚打包插件原理&#xff0c;然后就是复制粘贴一大篇&#xff0c;写了一堆垃圾&#xff0c;然后别人拿来也不能用。 然后这篇文…

土地利用强度(LUI)综合指数

土地利用强度的概念可以解释为某一时间特定区域内人类活动对土地利用强度的干扰程度[1]&#xff0c;其不仅反映不同土地利用类型本身的自然属性&#xff0c;也体现了人类利用土地的深度和广度&#xff0c;进而揭示在人类社会系统干扰下土地资源自然综合体自然平衡的保持状态[2]…

QGIS003:【05高级数字化工具栏】-要素移动、修改、合并操作

摘要&#xff1a;QGIS地图导航工具栏包括激活高级数字化工具、移动要素、旋转要素、缩放要素、简化要素、添加环、添加部件、填充环、删除环、删除部件、重塑要素、偏移曲线、反转线、裁剪/扩展要素、分割要素、分割部件、合并所选要素、合并所选要素的属性、旋转点符号等选项&…

人工智能发展前景

随着人工智能的快速发展&#xff0c;这个行业对人才的需求也在不断增长。越来越多的有志之士开始关注人工智能&#xff0c;希望通过自学获得相关技能&#xff0c;进而在人工智能领域找到心仪的职业。本文将探讨人工智能职业发展的前景&#xff0c;并为大家提供自学人工智能的途…

9步打造个人ip

什么是个人IP&#xff1f; 就是一个人创造出来的属于自己的有个性有价值的&#xff0c;能让他人记住你&#xff0c;信任你&#xff0c;认可你的东西。 如何强化个人IP呢&#xff1f; 需要一些必要的条件如专业性、耐心、勤奋等等要知道&#xff0c;打造IP是一个见效慢的过程&am…

NSSCTF第12页(3)

[NSSCTF 2nd]php签到 首先&#xff0c;代码定义了一个名为 waf 的函数&#xff0c;用于执行一个简单的文件扩展名检查来防止上传恶意文件。 $black_list 是一个存储不允许的文件扩展名的数组&#xff0c;如 “ph”、“htaccess” 和 “ini”。 pathinfo($filename, PATHINF…

锐捷OSPF认证

一、知识补充 1、基本概述 OSPF区域认证和端口认证是两种不同的认证机制&#xff0c;用于增强OSPF协议的安全性。 OSPF区域认证&#xff08;OSPF Area Authentication&#xff09;&#xff1a;这种认证机制是基于区域的。在OSPF网络中&#xff0c;每个区域都可以配置一个区域…

2023.11.16-hive sql高阶函数lateral view,与行转列,列转行

目录 0.lateral view简介 1.行转列 需求1: 需求2: 2.列转行 解题思路: 0.lateral view简介 hive函数 lateral view 主要功能是将原本汇总在一条&#xff08;行&#xff09;的数据拆分成多条&#xff08;行&#xff09;成虚拟表&#xff0c;再与原表进行笛卡尔积&#xff0c…

如何在远程协同视频会议中确保安全性?

随着远程工作的普及&#xff0c;远程协同视频会议已成为企业和团队之间进行交流和协作的重要工具。与此同时&#xff0c;会议中的安全性问题也日益凸显。本文将介绍如何在远程协同视频会议中确保安全性&#xff0c;主要包括以下方面&#xff1a; 1、内网部署 将会议服务器部署…

Nginx(六) Nginx location 匹配顺序及优先级深究(亲测有效)

Nginx配置文件详解请参考另一篇文章 Nginx(三) 配置文件详解 本篇文章主要是探讨Nginx location的匹配顺序&#xff0c;依照惯例&#xff0c;我们还是先贴结论再看测试结果。 匹配顺序 匹配location的过程&#xff0c;其实可以理解成一个在众多选项中寻找最佳答案的过程。当然…

【原创】java+swing+mysql鲜花购物商城设计与实现

前言&#xff1a; 本文主要介绍了鲜花购物商城的设计与实现。首先&#xff0c;通过市场需求&#xff0c;我们确定了鲜花商场的功能&#xff0c;通常的商城一般都是B/S架构&#xff0c;然而我们今天要用javaswing去开发一个C/S架构的鲜花商城&#xff0c;利用开发技术和工具&am…

解密网络世界的秘密——Wireshark Mac/Win中文版网络抓包工具

在当今数字化时代&#xff0c;网络已经成为了人们生活和工作中不可或缺的一部分。然而&#xff0c;对于网络安全和性能的监控和分析却是一项重要而又复杂的任务。为了帮助用户更好地理解和解决网络中的问题&#xff0c;Wireshark作为一款强大的网络抓包工具&#xff0c;应运而生…

回溯算法(3)--n皇后问题及回溯法相关习题

一、n皇后问题 1、概述 n皇后要求在一个nn的棋盘上放置n个皇后&#xff0c;使得他们彼此不受攻击&#xff0c;皇后可以攻击同一行、同一列、同一斜线上的敌人&#xff0c;所以n皇后问题要求寻找在棋盘上放置这n个皇后的方案&#xff0c;使得任意两个皇后都不在同一行、同一列或…

基于STC12C5A60S2系列1T 8051单片机的模数芯片ADC0832实现模数转换应用

基于STC12C5A60S2系列1T 8051单片的模数芯片ADC0832实现模数转换应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍模数芯片ADC0832介绍通过模数芯片ADC0832把电压模…

kafka入门(一):kafka消息消费

安装kafka&#xff0c;创建 topic&#xff1a; Windows安装kafka, 详情见&#xff1a;https://blog.csdn.net/sinat_32502451/article/details/133067851 Linux 安装kafka&#xff0c;详情见&#xff1a;https://blog.csdn.net/sinat_32502451/article/details/133080353 添…

一键云端,AList 整合多网盘,轻松管理文件多元共享

hello&#xff0c;我是小索奇&#xff0c;本篇教大家如何使用AList实现网盘挂载 可能还是有小伙伴不懂&#xff0c;所以简单介绍一下哈 AList 是一款强大的文件管理工具&#xff0c;为用户提供了将多种云存储服务和文件共享协议集成在一个平台上的便利性。它的独特之处在于&am…

Mendix 创客访谈录|低代码赋能IoT应用开发

本期创客 郑锴 舜宇光学科技&#xff08;集团&#xff09;有限公司信息技术部 毕业于浙江大学&#xff0c;三年软件设计开发经验。目前任职于舜宇光学科技&#xff08;集团&#xff09;有限公司信息技术部&#xff0c;担任软件开发工程师&#xff0c;主要负责工业互联网相关软件…

MIKE水动力笔记20_由dfs2网格文件提取dfs1断面序列文件

本文目录 前言Step 1 MIKE Zero工具箱Step 2 提取dfs1 前言 在MIKE中&#xff0c;dfs2是一个一个小格格的网格面的时间序列文件&#xff0c;dfs1是一条由多个点组成的线的时间序列文件。 如下两图&#xff1a; 本博文内容主要讲如何从dfs2网格文件中提取dfs1断面序列文件。 …