根据man grep
:
-h, --no-filename
Suppress the prefixing of file names on output. This is the
default when there is only one file (or only standard input) to
search.
如果我使用zgrep -h dhclient /var/log/syslog.*
,我仍然会看到文件名。如果我使用的话zgrep --no-filename ...
,一切都很好。
这是怎么回事?
我正在使用 Ubuntu 12.04.5 LTS。
答案1
该zgrep
命令由包提供gzip
(根据dpkg -S zgrep
);-h
根据 gzip 变更日志(来自http://ftp.gnu.org/gnu/gzip/):
2010-09-15 Paul Eggert <[email protected]>
zgrep: fix parsing of -Eh options
* zgrep.in: Update list of single-letter options to match what's
in GNU grep. Add -h as an alias for --no-filename. Bug reported
by Vladimir Sidorenko in
<http://lists.gnu.org/archive/html/bug-gzip/2010-09/msg00007.html>.
有一个相关的更改为 Ubuntu 软件包并致上游 Debian 软件包。该变更日志指出这是一个“回归”。我不清楚事实是否如此,但缺少开关在 Ubuntu 14.04 LTS 中运行良好。
帽子提示钢铁起子用于查找 Debian/Ubuntu 变更日志。