zoukankan      html  css  js  c++  java
  • Linux三剑客grep/sed/awk

    grep/sed/awk被称为linux的“三剑客”

    grep更适合单纯的查找或匹配文本;

    sed更适合编辑匹配到的文本;

    awk更适合格式化文本,对文本进行较复杂各式处理;

    • Grep

    --color=auto 或者 --color:表示对匹配到的文本着色显示

    -i:在搜索的时候忽略大小写

    -n:显示结果所在行号

    -c:统计匹配到的行数,注意,是匹配到的总行数,不是匹配到的次数

    -o:只显示符合条件的字符串,但是不整行显示,每个符合条件的字符串单独显示一行

    -v:输出不带关键字的行(反向查询,反向匹配)

    -w:匹配整个单词,如果是字符串中包含这个单词,则不作匹配

    -Ax:在输出的时候包含结果所在行之后的指定行数,这里指之后的x行,A:after

    -Bx:在输出的时候包含结果所在行之前的指定行数,这里指之前的x行,B:before

    -Cx:在输出的时候包含结果所在行之前和之后的指定行数,这里指之前和之后的x行,C:context

    -e:实现多个选项的匹配,逻辑or关系

    -q:静默模式,不输出任何信息,当我们只关心有没有匹配到,却不关心匹配到什么内容时,我们可以使用此命令,然后,使用"echo $?"查看是否匹配到,0表示匹配到,1表示没有匹配到。

    -P:表示使用兼容perl的正则引擎。

    -E:使用扩展正则表达式,而不是基本正则表达式,在使用"-E"选项时,相当于使用egrep。

     -m 1 匹配到首行记录后停止

     

    http://www.zsythink.net/archives/1733/

     

     

    • Sed

    sed 是Stream Editor(字符流编辑器)的缩写,简称流编辑器。

     

    Sed小技巧:

    1,

     

    search_result=`grep -E --color -n '####VVVV' $podfile`
    echo "$search_result"   

    ### "$search_result" 加双引号保存grep结果中的换行符效果

    2,

    array=(`echo "$search_result" |  awk -F "[:]" '{print$1}' | sort -r`)

     

    ### 加括号,将换行结果作为数组输出 

    http://cn.voidcc.com/question/p-oqtqbgdm-bgy.html

     

     

    https://blog.csdn.net/longshenlmj/article/details/14166193

     

    https://blog.csdn.net/lingeio/article/details/96480071

    坑1:

    eg :sed -i ""  's/$oldday/$today/g'  ${json_path}

    shell中如果有$这样的特殊字符,单引号要换成双引号。

    坑2:

    mac环境使用sed修改文件报错:invalid command code E

    eg: sed -i  "s/$oldday/$today/g"  ${json_path}

    原来sed -i需要带一个字符串作为备份源文件的文件名称,如果这个字符串长度为0,则不备份。 

    https://blog.csdn.net/fdipzone/article/details/51253955

    坑3:

    MAC执行sed命令报“command c expects followed by text”错误解决办法

    https://blog.csdn.net/lord_y/article/details/99949999 

    • awk

      awk  [options] '{pattern + action}' {filenames}

    Vivien 补充

    麻烦1:他们都是面向“行”的。跨行需要采用其他手段。

     

  • 相关阅读:
    poj 3243 Clever Y(BabyStep GiantStep)
    poj 2417 Discrete Logging
    poj 3481 Double Queue
    hdu 4046 Panda
    hdu 2896 病毒侵袭
    poj 1442 Black Box
    hdu 2815 Mod Tree
    hdu 3065 病毒侵袭持续中
    hdu 1576 A/B
    所有控件
  • 原文地址:https://www.cnblogs.com/developer-qin/p/11334849.html
Copyright © 2011-2022 走看看