grep忽略二进制文件
时间: 2024-03-01 19:48:12 浏览: 115
在使用grep命令时,可以通过使用参数"-I"或"--binary-files=without-match"来忽略二进制文件。这样,grep将只搜索文本文件,并跳过二进制文件。
下面是使用grep忽略二进制文件的示例命令:
```
grep -I "pattern" file.txt
```
或
```
grep --binary-files=without-match "pattern" file.txt
```
其中,"pattern"是你要搜索的模式,而"file.txt"是你要搜索的文件名。
这样,grep将只搜索文本文件,并忽略任何二进制文件。
相关问题
grep 忽略二进制文件
要让grep忽略二进制文件,可以使用-a选项。这个选项会将二进制文件当作文本文件来处理,从而避免了grep将其识别为二进制文件的问题。下面是一个例子:
```shell
grep -a "pattern" binary_file
```
其中,-a选项告诉grep将binary_file当作文本文件来处理,"pattern"是要搜索的模式。
在当前目录中查找包含 "hello" 短语的文件,并显示这些文件的绝对路径。(提示:忽略二进制文件和目录)
要在当前目录及其子目录中查找包含 "hello" 字符串的文本文件(即不是二进制文件),你可以使用 `grep` 和 `find` 命令结合使用。下面是相应的命令:
```sh
find . -type f \( ! -name "*.bin" \) -exec grep -l 'hello' {} \; | xargs ls -l --abs-path
```
这个命令的工作原理如下:
- `find .`: 在当前目录下开始搜索。
- `-type f`: 只查找普通文件,不包括目录。
- `\(! -name "*.bin"\)`: 排除名字以 ".bin" 结尾的所有文件,即忽略二进制文件。
- `-exec grep -l 'hello' {} \;`: 对每个找到的文件执行 `grep` 搜索,如果找到 "hello" 子串,则显示该文件的完整路径(仅限于匹配的行)。
- `xargs ls -l --abs-path`: 把 `grep` 的结果传递给 `ls` 命令,显示每条路径的详细信息(包括绝对路径)。
运行此命令后,你会看到所有包含 "hello" 字符串的文本文件的绝对路径列表。
阅读全文