zoukankan      html  css  js  c++  java
  • Linux——查找过滤(tail、grep、find)

    tail

    基本格式:

    tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]

    参数解释:

    -f 该参数用于监视File文件增长。
    -c Number 从 Number 字节位置读取指定文件
    -n Number 从 Number 行位置读取指定文件。
    -m Number 从 Number 多字节字符位置读取指定文件,比方你的文件假设包括中文字,假设指定-c参数,可能导致截断,但使用-m则会避免该问题。
    -b Number 从 Number 表示的512字节块位置读取指定文件。
    -k Number 从 Number 表示的1KB块位置读取指定文件。
    File 指定操作的目标文件名称

    示例:

    tail -300f shopbase.log #倒数300行并进入实时监听文件写入模式
    tail -f catalina.out |grep "S201903161209220000001" #输出指定文件的指定内容

     

    grep

    grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。

    基本格式:

    grep [OPTIONS] PATTERN [FILE...]
    grep [OPTIONS] [-e PATTERN]...  [-f FILE]...  [FILE...]

    [options]主要参数:

    OPTIONS:
        -e: 使用正则搜索
        -i: 不区分大小写
        -v: 查找不包含指定内容的行
        -w: 按单词搜索
        -c: 统计匹配到的次数
        -n: 显示行号
        -r: 逐层遍历目录查找
        -A: 显示匹配行及前面多少行, 如: -A3, 则表示显示匹配行及前3行
        -B: 显示匹配行及后面多少行, 如: -B3, 则表示显示匹配行及后3行
        -C: 显示匹配行前后多少行,   如: -C3, 则表示显示批量行前后3行
        --color: 匹配到的内容高亮显示
        --include: 指定匹配的文件类型
        --exclude: 过滤不需要匹配的文件类型

    pattern正则表达式主要参数:

    : 忽略正则表达式中特殊字符的原有含义。
    ^: 匹配正则表达式的开始行。
    $: 匹配正则表达式的结束行。
    <: 从匹配正则表达 式的行开始。
    >: 到匹配正则表达式的行结束。
    [ ]: 单个字符,如[A]即A符合要求 。
    [ - ]: 范围,如[A-Z],即A、B、C一直到Z都符合要求 。
    .: 所有的单个字符。
    *: 有字符,长度可以为0。

    示例:

    grep 'forest' f.txt     #文件查找
    grep 'forest' f.txt cpf.txt #多文件查找
    grep 'log' /home/admin -r -n #目录下查找所有符合关键字的文件
    grep 'shopbase' /home/admin -r -n --include *.{vm,java} #指定文件后缀
    grep 'shopbase' /home/admin -r -n --exclude *.{vm,java} #反匹配

     

    find

    find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。

    基本格式:

    find pathname -options [-print -exec -ok ...]

    参数:

    pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
    -print:find命令将匹配的文件输出到标准输出。
    -exec:find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } ;,注意{ }和;之间的空格。
    -ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
    
    find[options]命令选项:
    -name:按照文件名查找文件。
    -perm:按照文件权限来查找文件。
    -prune:使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
    -user:按照文件属主来查找文件。
    -group:按照文件所属的组来查找文件。
    -mtime -n +n:按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。
    -nogroup:查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
    -nouser:查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
    -newer file1 ! file2:查找更改时间比文件file1新但比文件file2旧的文件。
    -type

    示例:

    • 按照文件名查找
    find / -name httpd.conf  #在根目录下查找文件httpd.conf,表示在整个硬盘查找
    find /etc -name httpd.conf  #在/etc目录下文件httpd.conf
    find /etc -name 'srm'  #使用通配符(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件
    find . -name 'srm'   #表示当前目录下查找文件名开头是字符串‘srm’的文件
    • 按照文件特征查找
    find / -amin -10   # 查找在系统中最后10分钟访问的文件(access time)
    find / -atime -2   # 查找在系统中最后48小时访问的文件
    find / -empty   # 查找在系统中为空的文件或者文件夹
    find / -group cat   # 查找在系统中属于group为cat的文件
    find / -mmin -5   # 查找在系统中最后5分钟里修改过的文件(modify time)
    find / -mtime -1   #查找在系统中最后24小时里修改过的文件
    find / -user fred   #查找在系统中属于fred这个用户的文件
    find / -size +10000c  #查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)
    find / -size -1000k   #查找出小于1000KB的文件
    • 使用混合查找方式查找文件

    参数有: !,-and(-a),-or(-o)

    find /tmp -size +10000c -and -mtime +2   #在/tmp目录下查找大于10000字节并在最后2分钟内修改的文件
    find / -user fred -or -user george   #在/目录下查找用户是fred或者george的文件文件
    find /tmp ! -user panda  #在/tmp目录中查找所有不属于panda用户的文件
  • 相关阅读:
    小程序 scroll-view 中文字不换行问题
    模块
    网络编程
    元类
    day24
    day23
    day22
    day21
    day18
    day17
  • 原文地址:https://www.cnblogs.com/caoweixiong/p/15218826.html
Copyright © 2011-2022 走看看