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

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    awk、grep、sed是linux操作文本的三大利器,合称文本三剑客。三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂。grep更适合单纯的查找或匹配文本,sed更适合编辑匹配到的文本,awk更适合格式化文本,对文本进行较复杂格式处理。

    1、grep

    认识grep和egrep

    grepGlobal Regular Expression Print)表示全局正则表达式版本,它的使用权限是所有用户。它能使用正则表达式搜索和过滤文本,并把匹配的行打印出来。

    grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。

    egrepextend grep) = grep -E:扩展的正则表达式 (除了< , > ,  使用其他正则都可以去掉)

    命令格式

    grep [option] pattern file

    命令参数

    • -A<显示行数>:除了显示符合范本样式的那一列之外,并显示该行之后的内容。
    •  -B<显示行数>:除了显示符合样式的那一行之外,并显示该行之前的内容。
    •  -C<显示行数>:除了显示符合样式的那一行之外,并显示该行之前后的内容。
    •  -c:统计匹配的行数
    •  -e :实现多个选项间的逻辑or 关系
    •  -E:扩展的正则表达式 (extend grep)
    •  -f :从FILE获取PATTERN匹配
    •  -F:相当于fgrep (fast grep)
    •  -i : #忽略字符大小写的差别。
    •  -l :列出文件内容符合指定的样式的文件名称。
    •  -n:显示匹配的行号
    •  -o:仅显示匹配到的字符串
    •  -q: 静默模式,不输出任何信息
    •  -r: 递归查找,包括当前目录和子目录
    •  -s:不显示错误信息。
    •  -v:显示不被pattern 匹配到的行,相当于[^] 反向匹配
    •  -w :匹配 整个单词

    实例演示

    # 递归查找部分匹配DoAdd函数的C/C++文件名
    grep -lnr "DoAdd" * --include=*.c* 
    
    # 在C/C++文件中递归查找部分匹配 grep.txt文件中的内容 或 DoReg 关键字的记录
    grep -nrf grep.txt -e "DoReg"  --include=*.c*  *  
    作者:yusq77

    -------------------------------------------

    Wish you all the best and good health in 2021.

  • 相关阅读:
    Mysql开启日志
    amfphp传递负数的bug
    linux /var/spool/clientmqueue 目录占大量空间
    WinXP SSH连接不上虚拟机的解决方法
    批量数据替换助手V1.0版发布
    也谈反射的应用场景
    反射+特性打造简洁的AJAX调用
    文本处理之利器正则表达式闪亮登场
    关于缩略图的生成与访问策略的一些经验分享
    装饰模式个人的一些理解
  • 原文地址:https://www.cnblogs.com/yusq77/p/10880267.html
Copyright © 2011-2022 走看看