grep -l 和 grep -ln

发布于 2024-11-28 02:09:57 字数 439 浏览 0 评论 0原文

根据 grep 手册,

-l, --files-with-matches
          Suppress normal output; instead print the  name  of  each  input
          file  from  which  output would normally have been printed.  The
          scanning will stop on the first match.

grep -l,这似乎很好,因为当找到匹配项时,会回显包含匹配项的文件名。

但是,当我执行 grep -ln 时,grep 会回显出现的每一行。

grep -l 是否真的意味着在找到第一次匹配时停止并停止扫描,而 grep -ln 会忽略 -l > 旗帜?

according to the manual for grep,

-l, --files-with-matches
          Suppress normal output; instead print the  name  of  each  input
          file  from  which  output would normally have been printed.  The
          scanning will stop on the first match.

grep -l, this seems fine in that when a match is found, the file name containing the match is echoed.

However when i do a grep -ln, grep echoes every line of the occurrence.

Does grep -l really mean to stop when the first occurrence of the match is found and stop scanning, while grep -ln will ignore the -l flag?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

青春有你 2024-12-05 02:09:57

这些选项是不兼容的。如果要显示每个文件中第一个匹配项(并且仅第一个匹配项)的行号,请使用 grep -Hnm 1 。

-H, --with-filename
打印每个匹配的文件名。

-n, --行号
在输出的每一行前面加上输入文件中的行号作为前缀。

-m NUM, --max-count=NUM
NUM 匹配行后停止读取文件。

Those options are incompatible. Use grep -Hnm 1 if you want to display the line number of the first match (and only the first match) in each file.

-H, --with-filename
Print the filename for each match.

-n, --line-number
Prefix each line of output with the line number within its input file.

-m NUM, --max-count=NUM
Stop reading a file after NUM matching lines.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文