grep 打印文件名和行数
时间: 2024-08-13 20:02:25 浏览: 114
Linux中grep和egrep命令详解
5星 · 资源好评率100%
`grep`本身并不直接提供打印文件名和行数的功能,但你可以通过一些组合使用其他工具或者选项来达到目的。这里有一个常见的做法是使用`find`和`xargs`配合,再加上`grep`的 `-n` 选项来显示行号:
1. 首先,`find`命令用于查找包含特定字符串的文件,例如:
```sh
find /path/to/search -type f -exec grep -l "search_string" {} \;
```
这里`-type f`指定只找文件,`-l`选项告诉`grep`仅输出含有指定模式的文件名。
2. 然后,`xargs`可以把`find`的结果传递给`grep`,并添加行号:
```sh
find /path/to/search -type f -exec grep -l "search_string" {} \; | xargs grep -n "search_string"
```
`-n`加上`xargs`会让`grep`在输出匹配行时附上行号。
注意,如果你的文件非常多,这种方法可能会比较慢。在这种情况下,考虑使用`ack`(一个更快的全文搜索工具),或者在`grep`中设置`-I`(忽略大小写)和`-w`(单词边界匹配)选项以提高效率。
阅读全文