按文件名或文件内容搜索

  • windows下调用使用cmd命令搜索
    1. 文件名模糊匹配
      //在目录E:/workspace中递归遍历查找已.c结尾的文件,并显示出来
      for /r E:/workspace %i in (*.c) do @echo %i

    2. 按部分内容字符串搜索文件
      //在E:/workspace目录下文件名以.c结尾的,并且这些文件中的内容里包含字符串main()的所有文件
      for /r E:/workspace %a in (*.c) do @findstr /im "main()" "%a"

  • linux 下调用控制台命令搜索
    1. 文件名模糊匹配
      //在目录/home/wxn/workspace中查找文件名以.c结尾的所有文件
      find /home/wxn/workspace -name '*.c'

    2. 按照文件内容搜素
      在目录/home/wxn/workspace中查找文件里还有字符main()的文件
      grep -r "main()" /home/wxn/workspace

    3. 综合查找
      //在目录/home/wxn/workspace中查找文件名以.c结尾的并且文件内容中包含字符串main()的文件
      find /home/wxn/workspace -type f -name '*.c' | xargs grep "main()"

  • 系统文件重定向
    两种平台都支持文件重定向命令
    所有的控制台命令,都可以在命令后面追加 ">> filepath"来讲输入到控制台打印的信息重定向到指定的文件中,例如:
    find /home/wxn/workspace -type f -name '*.c' | xargs grep "main()" >> /home/wxn/find_result.txt

  • c语言中调用系统的控制台命令
    system("cmd")
    例如:
    system("grep -r \"main()\" /home/wxn/workspace")

你可能感兴趣的:(按文件名或文件内容搜索)