Chinaunix

标题: 如何判断一个文件为二进制文件 [打印本页]

作者: 渣渣鸟    时间: 2010-07-05 16:36
标题: 如何判断一个文件为二进制文件
需要搜索某个目录下面的文件是否含有关键字 ABC
这个目录下面有文本文件,还有许多elf格式的可执行文件以及.o, .so .a文件。

如果采用

find . -type f  | xargs -n1 grep "ABC"

将会同时把二进制文件也搜索一遍,这样速度很慢,因为二进制文件很多。

请问如何快速排除二进制文件。

++++++++++++

采用file命令,可以识别elf格式,但是这样需要写成脚本,比较复杂,有没有什么比较简洁的方式?

谢谢~~~
作者: bbgg1983    时间: 2010-07-05 16:52
file已经差不多很简单了吧~~
作者: todayhero    时间: 2010-07-05 16:54
  1. [root@test7 ~]# file /bin/bash
  2. /bin/bash: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped
复制代码

作者: 渣渣鸟    时间: 2010-07-05 17:25
根据黑哥提示, 一般情况下,可以根据文件名上找规律,来排除二进制文件(二进制文件名有规律)。

或者文本文件名有规律 (如  *.xml),从文件名找到需要的文件。
作者: blackold    时间: 2010-07-05 17:31
回复 4# 渣渣鸟


   
作者: bbgg1983    时间: 2010-07-05 19:52
学习了
作者: supertcy    时间: 2010-07-21 22:32
grep -I




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2