Linux命令:grep和find命令

1. 简介

  • grep 命令: 在linux命令行中,经常需要对当前获取的一堆数据进行过滤、提取和分析,其中grep命令是非常重要的命令之一,比如,在开机log中经常使用到这个命令过滤信息:dmesg | grep kernel

  • find 命令: Linux find 命令用于在指定目录下查找文件和目录

2. find 命令

  • find命令语法:

    find pathname -options [-print -exec -ok ...] 
    
    find  [路径]    [选项]  [操作]
    
  • 示例 1:使用 -name 参数查找指定文件
    find 能够找到的是只有和搜索内容 file.txt一致的文件,而 /etx/file1.txt 文件虽然含有搜索关键字,但是不会被找到。这种特性我们总结为:find 命令是完全匹配的,必须和搜索关键字一模一样才会列出。

    查找 /etc 目录下是否有file.txt
    
    find /etc -name file.txt
    
  • 示例 2:Linux 中的文件名是区分大小写的,也就是说,搜索小写文件,是找不到大写文件的。如果想要大小通吃,就要使用 -iname 来搜索文件。

    touch CANGLS
    touch cangls
    
    #建立大写和小写文件
    find.-iname cangls
    ./CANGLS
    ./cangls
    #使用-iname,大小写文件通吃
    
  • 示例 3:将当前目录及其子目录下所有文件后缀为 .c 的文件列出来

     find . -name "*.c"
    
  • 示例 4:将当前目录及其子目录下所有文件名为overlay…的文件列出来

  •  find . -name "overlay*"
    

3. grep 命令

  • grep命令语法:

    grep   [options]   [pattern]   file
    
    grep   [选项参数]   [字符串]   [文件名]
    
  • 示例 1:在开机log中搜索与wifi相关的log打印:

    dmesg | grep wlan
    
  • 示例 2:在文件 file.txt 中查找字符串 “hello”,并打印匹配的行:

    grep hello file.txt
    
  • 示例 3:以递归的方式查找符合条件的文件。例如,查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件,并打印出该字符串所在行的内容,使用的命令为:

    grep -r update /etc/acpi
    

猜你喜欢

转载自blog.csdn.net/nb124667390/article/details/131104765