• egrep扩展正则表达式


    egrep :   和 grep  部分功能类似

    支持扩展的正则表达式实现类似于grep文本过滤功能:grep -E

    egrep [OPTIONS] PATTERN [FILE…]

    选项:-G:支持基本正则表达式

    扩展正则表达式的 元字符:

    字符匹配:

    • .   :匹配任意单个字符

    • []  :匹配指定范围内的任意单个字符

    • [^] :匹配指定范围外的任意单个字符

    次数匹配:

    • * : 任意次,0,1,或多次

    • ? : 0或1次,期前的字符是可有可无的

    • +: 其前字符至少1次

    • {m} :其前的字符m次

    • {m,n} :匹配其前面字符至少m次,至多n次

    • {0,n} :匹配其前面字符至多n次

    • {m,} :匹配其前面字符至少m次

    位置锚定:

    •     ^ : 行首锚定,用于模式的最左则;

    •     $ : 行尾锚定,用于模式的最右则;

    •     \<或\b :词首锚定,用于单词模式的左侧

    •     \>或 \b :词尾锚定,用于单词模式的右侧

    分组及引用:

    (): 分组:括号内的模式匹配到的字符会被记录于正则表达式引擎的内部变量中

    后向引用: \1 ,\2 ,\3 ….

    或:

    • a|b  :a或者b

    • C|cat  :C或者cat

    • (c|C)at  :cat或者Cat

    找出/etc/passwd文件中的两位数或三位数

    1. egrep "\<[0-9]{2,3}\>" /etc/passwd
    2. #或者
    3. grep -E "\<[0-9]{2,3}\>" /etc/passwd

    练习:

    1.找出/proc/meminfo 文件中,所有以大写或小写S开头的行,至少有三种实现方式

    1. grep -i "^s" /proc/meminfo
    2. grep "^[sS]" /proc/meminfo
    3. egrep "^(s|S)" /proc/meminfo

    2.显示当前系统上 root,cent用户的相关信息

    egrep "^(root|cent)\>" /etc/passwd

    3.找出 /etc/rc.d/init.d/functions文件中某单词后面跟一个小括号的行

    egrep -o "[_[:alnum:]]+\(\)" /etc/rc.d/init.d/functions

    4.使用echo命令输出一绝对路径,使用egrep取出基名

    echo /etc/sysconfig/ | egrep -o "[^/]+/?$"

    5.找出ifconfig命令结果中的1-255之间的数值

    ifconfig | egrep -o "\<[1-9][1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]/>"

    fgrep :不支持正则表达式元字符:

    当无需用到元字符去编写模式时,用fgrep性能更好

    文本查看及处理工具: wc,cut,sort,uniq,diff,,path

    wc:  word count  :单词统计

    • -l: lines

    • -w:words

    • -c:bytes

    cut :

    • -d CHAR:以指定得字符为分隔符

    • -f fields:挑选出的字段

        #     : 指定的单个字段

        #-#   :连续的多个字段

        #,#   :离散的多个字段

    sort:排序算法

    • -t CHAR :指定分隔符

    • -n :基于数值大小来排序

    • -k # :用于排序比较的字段

    • -r :逆序排序

    • -f :忽略字符大小写

    • -u : 重复的行只保留一份(连续且相同的行)

    uniq命令:报告或移除重复的行

    • -c:显示每行的重复次数

    • -u:仅显示未曾重复过的行

    • -d:仅显示重复过的行

    diff :逐行比较文件的内容

    diff OLDFILE NEWFILE >PATHFILE

    -u :使用unfied机制,既显示要修改的行的上下文,默认三行

    path:向文件打补丁

    path -i PATHFILE OLDFILE

    path OLDFILE

  • 相关阅读:
    无人机反制软硬手段
    acwing语法类最长公共后缀
    学生HTML静态网页基础水平制作DIV+CSS+JavaScript技术制作美食网页——美食城6页面
    阿里云服务器上CentOS 7.6使用rpm包安装MySQL 8.0.31
    【 盒模型】css盒模型学习
    基于Python实现的词汇相似度计算
    【无标题】
    机器比人更需要通证
    Android的View绑定实现----编译时注解实现findViewById和setOnClickListener方式
    让GPT回复图片的咒语
  • 原文地址:https://blog.csdn.net/ly1358152944/article/details/126251166