zoukankan      html  css  js  c++  java
  • Linux bash 文本处理命令awk,sed,grep 用法

    Linux bash 文本处理命令grep, sed, awk用法

    grep, sed, awk 的主要用途及区别:

    grep 用法

    grep -rn "hello,world!" ./
    
    ./ : 表示路径为当前目录.
    
    -r 是递归查找
    
    -n 是显示行号
    
    如果加上-i, 则为忽略大小写。
    

    grep 显示匹配目标上下行

    grep -C 5 foo file 显示file文件里匹配foo字串那行以及上下5行
    grep -B 5 foo file 显示foo及前5行
    grep -A 5 foo file 显示foo及后5行
    
    查看grep版本号的方法是
    grep -V
    
    

    常用选项:

      -E :开启扩展(Extend)的正则表达式。

      -i :忽略大小写(ignore case)。

      -v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。

      -n :显示行号

      -w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker

      -c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。

      -o :只显示被模式匹配到的字符串。

      --color :将匹配到的内容以颜色高亮显示。

      -A n:显示匹配到的字符串所在的行及其后n行,after

      -B n:显示匹配到的字符串所在的行及其前n行,before

      -C n:显示匹配到的字符串所在的行及其前后各n行,context


    start_line=`grep -in 'set task group' ../text.c |awk 'BEGIN {FS=":"} {print $1}'`; // 查找text.c 中'set task group' 所在行,并将行号赋值给变量start_line
    
    

    sed 用法

    sed -i "${start_line},${end_line} s/^////g" ./test.c; // 将text.c文件的开始行start_line 到结束行end_line 行首 插入//
    sed -i "$second_insert{s/hello()/SetDevice($next_run_cluster);hello()/}"  ./hello_world.c; // 将hello_world.c文件的 第second_insert 行的hello()  替换成SetDevice($next_run_cluster);hello()
    

    awk 用法

  • 相关阅读:
    LibreOJ #507. 「LibreOJ NOI Round #1」接竹竿
    BZOJ 4590: [Shoi2015]自动刷题机
    luogu P3808 【模板】AC自动机(简单版)
    cogs 2569. [東方] 博丽灵梦 梦想妙珠
    codeforces 1C. Ancient Berland Circus
    BZOJ 4570: [Scoi2016]妖怪
    HDU 1392 Surround the Trees
    cogs 999. [東方S2]雾雨魔理沙
    Uva 10652 Board Wrapping
    AC日记——[Sdoi2008]Cave 洞穴勘测 bzoj 2049
  • 原文地址:https://www.cnblogs.com/michaelcjl/p/14876358.html
Copyright © 2011-2022 走看看