当前位置:首页 > 编程笔记 > 正文
已解决

Linux入门(三)

来自网友在路上 169869提问 提问时间:2023-11-20 21:17:11阅读次数: 69

最佳答案 问答题库698位专家为你答疑解惑

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

在这里插入图片描述

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"Linux入门(三)":http://eshow365.cn/6-40629-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!