这个问题是基于这个答案.
为什么从这两个命令获得相同的输出?
命令A.
$sudo grep muel * /tmp
masi:muel
Run Code Online (Sandbox Code Playgroud)
命令B.
$sudo grep -H muel * /tmp
masi:muel
Run Code Online (Sandbox Code Playgroud)
罗布的评论告诉我,命令A不应该给我masi:,而只是muel.
总之,实际目的是-H什么?
Ric*_*dle 12
如果给出多个文件名,Grep将默认列出文件名.-H即使只给出一个文件名,该选项也可以实现.在两个示例中,都给出了多个文件名.
这是一个更好的例子:
$ grep Richie notes.txt
Richie wears glasses.
$ grep -H Richie notes.txt
notes.txt:Richie wears glasses.
Run Code Online (Sandbox Code Playgroud)
当你为一个未知数量的文件提供通配符时,它会更有用,即使通配符只匹配一个文件,你总是希望打印文件名.
如果你grep一个文件,-H有所不同:
$ grep muel mesi
muel
$ grep -H muel mesi
masi:muel
Run Code Online (Sandbox Code Playgroud)
这在各种脚本环境中可能很重要.例如,脚本(或非平凡的管道系列命令)可能不知道它实际处理的文件数量:一个或多个.
| 归档时间: |
|
| 查看次数: |
9888 次 |
| 最近记录: |