• 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.

  • 相关阅读:
    Linux的内存管理之道
    Ramdisk根文件系统启动Linux(单独的ramdisk镜像)
    详解 ARM Linux启动过程
    晒晒我的vimrc配置【不定期更新】
    [Python入门及进阶笔记]Pythondecorator装饰器小结
    谷歌10个用户体验设计原则
    用busybox创建基于Linux2.6.24内核的nfs根文件系统
    [Python入门及进阶笔记]Python魔术方法小结(方法运算符重载)
    mysql慢查询
    关于android的各种disk images(看过的讲android image比较细致的好文)
  • 原文地址:https://www.cnblogs.com/yusq77/p/10880267.html
Copyright © 2020-2023  润新知