zoukankan      html  css  js  c++  java
  • grep命令梳理

    一:grep的工作原理

        grep命令在一个或多个文件中查找某个字符模式,如果这个模式中包含空格,就必须用引号把它括起来。grep命令中,模式可以是一个被引号括起来的字符 串,也可以是单个词。位于模式之后的所有单词都被视为文件名。grep将输出发送到屏幕,它不会对输入文件进行任何修改或变化。grep返回的退出状态为 0,表示成功。退出状态为1,表示没有找到。如果找不到指定的文件,退出状态为2。

    二:支持的正则表达式元字符

    元字符 功能 实例 匹配结果 备注
    ^ 行首定位符 grep “^test” datafile 打印所有以test开头的行  
    $ 行尾定位符 grep “test$” datafile 打印所有以test结尾的行  
    .  (点) 匹配除“/n”之外的任何单个字符 /t..t/ 匹配包含一个t,后跟两个字符,在跟一个t的行。 定位.本身只需加上转义符即可
    * 零次或多次匹配前面的字符或子表达式 /t*est/ 匹配包含0个或者多个t后跟est的行。可以匹配:est、test、ttest  
    [] 匹配一组字符中的任一个 /[Tt]est/ 匹配包含Test或者test行  
    [^] 匹配不在指定组内的字符 /[^A-Z]/ 匹配不在范围A至Z之间的任一个字符  
    /< 词首定位符 // 匹配包含以love开头的词的行。如:love、lover grep “/打印所有包含以north开头的单词的行。
    /> 词尾定位符 /love/>/ 匹配包含以love结尾的词的行。
    如:aalove
    grep “north/>” datafile
    打印所有包含以north结尾的单词的行。
    /(pattern/) 匹配模式pattern,并将之存储在寄存器中,供之后使用。 //(love/)able /1r/ 最多可以使用9个标签,模式中最左边的标签是第一个。例如:模式love被保存为标签1,用/1表示。左边这个例子中,查找串是一个loveable 后跟 lover的长串。 sed、vi、grep支持。
    例如:
    sed “s//(love/)//1able/” 功能是将文件中的love替换成loveable。
    x/{m/} 或
    x/{m,/} 或
    x/{m,n/}
    字符x的重复出现;
    m次,至少m次,至少m次且不超过n次。
    o/{5,10/} 匹配包含5-10个连续的字母o的行。 vi和grep支持

    三:grep选项

    选项 功能
    -b 在每一行前面加上其所在的块号,根据上下文定位磁盘块时可能会用到。
    -c 显示匹配到的行的数目,而不显示行的内容
    -h 不显示文件名
    -i 比较字符的时候忽略大小写的区别
    -l 只列出匹配行所在文件的文件名(每个文件名只列一次),文件名之间用换行符分隔。
    -n 在每一行前面加上它在文件中的相对行号
    -s 无声操作,即只显示报错信息,以检查退出状态
    -v 反向查找,只显示不匹配的行
    -w 全字匹配

    grep –n  ‘^south’ datafile   ----- 选项-n在找到指定模式的行前面加上其行号在一并输出

    grep –i  ‘pat’ datafile   ----- 选项-i 关闭大小写敏感性,表达式pat包含任意大小写的组合都符合

    grep –v ‘test’ datafile -----查找所有不包含test的行

    grep –l ‘test’ *    ----- 查询输出当前目录下所有包含test的文件名

  • 相关阅读:
    CA证书扫盲,https讲解。
    关于jquery的入门,简单的封装。
    anglar JS使用两层ng-repeat嵌套使用,分辨$index
    JS中=>,>>>是什么意思
    撰写html标签的快捷方式2
    CSS 中伪类的顺序
    撰写html标签的快捷方式1
    文字换行显示
    input 控件监听回车确认按钮。
    git常用命令整理
  • 原文地址:https://www.cnblogs.com/fengyv/p/2423866.html
Copyright © 2011-2022 走看看