zoukankan      html  css  js  c++  java
  • linux grep命令使用详解

    grep是我们最常用的命令之一,但是正真用的熟的不多,把基础命令记牢固,能帮我们节约很多时间

    grep的option

    -A 1 表示找到所有匹配行,并显示所有匹配行后的一行
    在错误日志查找时还是很有用

    -B 1 表示找到所有匹配行,并显示所有匹配行的前面一行

    -C 1表示找到所有匹配行,并显示所有匹配行的前一行,后一行

    -a 表示把所有文件当作ASCII文件来处理 搜索二进制文件
    //a.pcap是一个tcpdump生成的文件,为binary文件,使用grep不能搜索

    -b 表示显示match的字符串在文件中的offset

    -c 显示有多少行match

    –color 是把match的字符用不同颜色标示出来

    -e 后面跟一个正则表达式,指定多个正则表达式的时候很有用

    -f可以指定pattern在我们的文件中 pattern文件中的每一行都会来进行匹配

    -m 最多匹配几个后,就停止,这样速度会比较快

    -n 匹配之后,在前面打印行号,这个还是有用的

    -o 只打印匹配的内容

    -R 搜索子目录
    $ll
    total 208
    -rw-r–r– 1 * * 91868 5 1 23:05 a.pcap
    -rw-r–r– 1 * * 31 5 2 22:39 a.txt
    -rw-r–r– 1 * * 4 5 1 23:18 b.txt
    drwxr-xr-x 3 * * 102 5 4 18:58 dir1 //这是一个目录
    -rw-r–r– 1 * * 4 5 4 18:49 pattern.txt

    //只能搜索当前目录

    -v invert查找 下面为在a.txt中,查找不包含”a”的行 这个命令会经常使用

    -w 查找一个词,

    grep 正则表达式

    ^pattern 表示开头处开始匹配

    . 为匹配任意单个字符

    “r.*h”
    //匹配一个字符串,其中有r,有h,且r在前,h在后,且r和h之间可以间隔任意长度的任意字符串,sat考试培训当然也可以没有间隔

    //匹配一个字符串,其中r是第一个字符,h是最后一个字符,且r和h之间可以间隔任意长度的任意字符串,当然也可以没有间隔

    匹配指定范围内的任意字符 [e] 匹配任意单个字符
    $ echo “redh” |grep “[e]”
    redh

    $ echo “redh” |grep “[s]”

    匹配指定范围内的任意字符 [eh] 匹配e或h

    匹配指定范围内的任意字符 [a-z],[1-3a-b] [1-3a-bX-Z]

    //[^] 匹配指定范围外的字符

    [[:space:]] 匹配空白字符

    ? 表示匹配前面的字符串0次或1次

    {m,n} 匹配前面的字符串m到n次

    {2,} 匹配前面的字符串至少两次

    //

    //() 用来进行分组, 下面这个就是匹配带有re和rea的

    + 表示匹配前面的字符串一次或多次

    | 表示或的关系 

  • 相关阅读:
    CodeForces 156B Suspects(枚举)
    CodeForces 156A Message(暴力)
    CodeForces 157B Trace
    CodeForces 157A Game Outcome
    HDU 3578 Greedy Tino(双塔DP)
    POJ 2609 Ferry Loading(双塔DP)
    Java 第十一届 蓝桥杯 省模拟赛 19000互质的个数
    Java 第十一届 蓝桥杯 省模拟赛 19000互质的个数
    Java 第十一届 蓝桥杯 省模拟赛 19000互质的个数
    Java 第十一届 蓝桥杯 省模拟赛十六进制转换成十进制
  • 原文地址:https://www.cnblogs.com/zhangyanran/p/10037752.html
Copyright © 2011-2022 走看看