如何在UNIX下按内容查找文件

时间:2020-01-09 10:45:59  来源:igfitidea点击:

在阅读源代码时,如何通过诸如字符串或者单词之类的内容(在UNIX shell提示符下,诸如main()之类的函数名称)查找文件?
您需要使用以下工具:

  • grep 命令:打印与模式匹配的行。
  • find命令:在目录层次结构中搜索文件。

grep命令按内容查找文件

执行命令,如下所示:

grep 'string' *.txt
grep 'main(' *.c
grep '#include<example.h>' *.c
grep 'getChar*' *.c
grep -i 'ultra' *.conf
grep -iR 'ultra' *.conf

其中

  • -i:忽略PATTERN(匹配有效,VALID,ValID字符串)和输入文件(math file.c FILE.c FILE.C文件名)中的大小写区别。
  • -R:递归地读取每个目录下的所有文件

突出显示搜索模式

搜索大量文件时,可以轻松突出显示模式:

$ grep --color=auto -iR 'getChar();' *.c

显示搜索模式的文件名和行号

您可能还需要显示文件名和数字:

$ grep --color=auto -iRnH 'getChar();' *.c

其中:

  • -n:在输出的每一行之前,在其输入文件中添加基于1的行号。
  • -H打印每次匹配的文件名。当要搜索多个文件时,这是默认设置。
$grep --color=auto -nH 'DIR' *

您也可以使用find命令:

$ find . -name "*.c" -print | xargs grep "main("