• Linux


    Grep with Regular Expression

    grep命令基本用法

    grep [-acinv] [--color=auto] [-A n] [-B n] '搜寻字符串' 文件名
    参数说明:

    -a:将二进制文档以文本方式处理
    -c:显示匹配次数
    -i:忽略大小写差异
    -n:在行首显示行号
    -A:After的意思,显示匹配字符串后n行的数据
    -B:before的意思,显示匹配字符串前n行的数据
    -v:显示没有匹配行
    --color:以特定颜色高亮显示匹配关键字

    针对“–color”选项,在.bashrc或者.bash_profile文件中加入:alias grep=grep --color=auto,生效后,grep的搜索结果自动高亮匹配。
    针对‘搜寻字符串’选项,使用正则表达式时必须用单引号(’’)括起来,避免与shell的元字符冲突。

    基本正则表达式

    ^word
    搜寻以word开头的行。
    例如:搜寻以#开头的脚本注释行。 grep –n ‘^#’ regular.txt

    word$
    搜寻以word结束的行
    例如,搜寻以‘.’结束的行。 grep –n ‘.$’ regular.txt

    .
    匹配任意一个字符。
    例如:grep –n ‘e.e’ regular.txt
    匹配e和e之间有任意一个字符,可以匹配eee,eae,eve,但是不匹配ee。


    转义字符。
    例如:搜寻’,’是一个特殊字符,在正则表达式中有特殊含义。必须要先转义。 grep –n ‘” regular.txt

    *
    前面的字符重复0到多次。
    例如:匹配gle,gogle,google,gooogle等等。 grep –n ‘go*gle’ regular.txt

    [list]
    匹配一系列字符中的一个。
    例如:匹配gl,gf。  grep –n ‘g[lf]’ regular.txt

    [n1-n2]
    匹配一个字符范围中的一个字符。
    例如:匹配数字字符。  grep –n ‘[0-9]’ regular.txt

    [^list]
    匹配字符集以外的字符
    例如:匹配非o字符。  grep –n ‘[^o]‘ regular.txt

    {n1,n2}
    前面的字符重复n1,n2次
    例如:匹配google,gooogle。 grep –n ‘go{2,3}gle’ regular.txt

    <word
    单词是的开头。
    例如:匹配以g开头的单词。 grep –n ‘<g’ regular.txt

    word>
    匹配单词结尾
    例如:匹配以tion结尾的单词。 grep –n ‘tion>’ regular.txt

    扩展正则表达式

    在基本正则表达式的基础上,增加一些元数据,简化了字符串的匹配。grep可以通过参数-E支持扩展正则表达式。
    egrep是grep的一个扩展命令,和grep -E等价,用来支持扩展正则表达式。

    +
    重复前面字符1到多次。
    例如:匹配god,good,goood等等字符串。 grep –nE go+d’ regular.txt

    ?
    匹配0或1次前面的字符
    例如:匹配gd,god。 grep –nE ‘go?d’ regular.txt

    | 或(or)的方式
    匹配多个字串
    例如:匹配god或者good。 grep –nE ‘god|good’ regular.txt

    ()
    匹配整个括号内的字符串,原来都是匹配单个字符
    例如:搜寻good或者glad。 grep –nE ‘g(oo|la)d’ regular.txt

    特殊示例

    • 过滤注释行和空行:grep -v ^# |grep -Ev "^$"
  • 相关阅读:
    游戏保护硬件检测
    Debugging the Ubuntu kernel with GDB and QEMU
    Spring 校验器(Validator)
    Visual Studio添加自定义代码片段
    加载内核符号 使用 VMware 的 GDB 存根和 IDA Pro 进行 VMM 调试
    遍历PspCidTable表检测隐藏进程
    KVM/QEMU(virtmanager)使用iso镜像安装macOS bigsur 11.4
    Mysql慢查询的一次奇葩经历,group by慢查询终极解决方案!
    es6 findIndex,find用法
    prototype 用法
  • 原文地址:https://www.cnblogs.com/anliven/p/6018442.html
Copyright © 2020-2023  润新知