grep -rni 与grep -nsr 的区别

grep -rni 与grep -nsr 的区别在说他们区别的时候先了解下grepgrep简介grep(globalsearchregularexpression(RE)andprintouttheline,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工

在说他们区别的时候先了解下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 查看如下

grep -rni 与grep -nsr 的区别

 英文不好可以放到谷歌翻译里面看下

正则表达式选择和解释:
  -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 的区别

 验证

grep -rni 与grep -nsr 的区别

今天的文章grep -rni 与grep -nsr 的区别分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/65431.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注