在说他们区别的时候先了解下grep
grep 简介
grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。Linux使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。
grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到屏幕,不影响原文件内容。
简介参考地址
grep 的命令
如果不知道grep 的命令使用使用grep –help 查看如下
英文不好可以放到谷歌翻译里面看下
正则表达式选择和解释:
-E, –extended-regexp PATTERN 是扩展正则表达式 (ERE)
-F, –fixed-strings PATTERN 是一组换行符分隔的字符串
-G, –basic-regexp PATTERN 是一个基本的正则表达式 (BRE)
-P, –perl-regexp PATTERN 是一个 Perl 正则表达式
-e, –regexp=PATTERN 使用 PATTERN 进行匹配
-f, –file=FILE 从 FILE 获取 PATTERN
-i, –ignore-case 忽略大小写区别
-w, –word-regexp 强制 PATTERN 只匹配整个单词
-x, –line-regexp 强制 PATTERN 只匹配整行
-z, –null-data 数据行以 0 字节结尾,而不是换行符
各种各样的:
-s, –no-messages 抑制错误消息
-v, –invert-match 选择不匹配的行
-V, –version 显示版本信息并退出
–help 显示此帮助文本并退出
输出控制:
-m, –max-count=NUM 在 NUM 匹配后停止
-b, –byte-offset 用输出行打印字节偏移量
-n, –line-number 用输出行打印行号
–line-buffered 每一行的刷新输出
-H, –with-filename 打印每个匹配的文件名
-h, –no-filename 禁止输出文件名前缀
–label=LABEL 使用 LABEL 作为标准输入文件名前缀
-o, –only-matching 只显示匹配 PATTERN 的行的一部分
-q, –quiet, –silent 抑制所有正常输出
–binary-files=TYPE 假设二进制文件是 TYPE;
TYPE 是“二进制”、“文本”或“不匹配”
-a, –text 等同于 –binary-files=text
-I 相当于 –binary-files=without-match
-d, –directories=ACTION 如何处理目录;
ACTION 是“读取”、“递归”或“跳过”
-D, –devices=ACTION 如何处理设备、FIFO 和套接字;
ACTION 是“阅读”或“跳过”
-r, –recursive 就像 –directories=recurse
-R, –dereference-recursive 同样,但遵循所有符号链接
–include=FILE_PATTERN 只搜索匹配 FILE_PATTERN 的文件
–exclude=FILE_PATTERN 跳过匹配 FILE_PATTERN 的文件和目录
–exclude-from=FILE 跳过与 FILE 中任何文件模式匹配的文件
–exclude-dir=PATTERN 匹配 PATTERN 的目录将被跳过。
-L, –files-without-match 只打印不包含匹配项的文件名
-l, –files-with-matches 只打印包含匹配项的文件名
-c, –count 只打印每个文件的匹配行数
-T, –initial-tab 使标签对齐(如果需要)
-Z, –null 在文件名后打印 0 个字节
上下文控制:
-B, –before-context=NUM 打印 NUM 行前导上下文
-A, –after-context=NUM 打印 NUM 行尾随上下文
-C, –context=NUM 打印 NUM 行输出上下文
-NUM 与 –context=NUM 相同
–color[=何时],
–colour[=WHEN] 使用标记来高亮匹配的字符串;
WHEN 是“总是”、“从不”或“自动”
-U, –binary 不要在 EOL 时删除 CR 字符 (MSDOS/Windows)
-u, –unix-byte-offsets 报告偏移,就好像 CR 不存在一样
(MSDOS/Windows)
里面的大致了解下就行
grep -rni 与grep -nsr 的区别
grep -rni
看下每个的命令
-r, –recursive 就像 –directories=recurse 这个再看下d的命令
-d, –directories=ACTION 如何处理目录;
ACTION 是“读取”、“递归”或“跳过”
-n, –line-number 用输出行打印行号
-i, –ignore-case 忽略大小写区别
通过上面的大致知道grep -rni ,过滤的内容,带行数切忽略大小写
grep -nsr
-n, –line-number 用输出行打印行号
-s, –no-messages 抑制错误消息
-r, –recursive 就像 –directories=recurse 这个再看下d的命令
-d, –directories=ACTION 如何处理目录;
ACTION 是“读取”、“递归”或“跳过”
通过上面的内容可以看出grep -nsr 的命令,过滤的内容显示行数,不显示错误信息
这样就能知道它们的区别了
验证grep -rni 与grep -nsr
在一个记事本里面添加内容如下
验证
今天的文章grep -rni 与grep -nsr 的区别分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/65431.html