linux内的正则表达式

POSIX标准将正则表达式分为两类
    >基本正则表达式
    >扩展正则表达式
    大部分linux应用和工具仅支持基本的正则表达式。

    ============基本的正则表达式元字符集合及其意义============
    *   匹配0个或多个
    .   匹配任意一个字符
    ^   匹配开头
    $  匹配结尾
    []  匹配字符集合
    \   转义字符
    \<\>    精确匹配符号
    \{n\}   匹配前面字符出现n次
    \{n,\}  匹配前面的字符出现至少n次
    \{n,m\} 匹配前面的字符n-m次
    ==========================================================

    匹配空行:^$
    \<\>表示精确匹配符号
        \<the\>表示匹配the这个单词,而不匹配包含the字符的单词,如then,them,there,another等

    awk,perl等linux工具还支持正则表扩展出来的字符
    =============扩展正则表达式===============================
    ?   匹配0个或1个在其之前的那个普通字符
    +   匹配1个或多个在其之前的那个普通字符
    ()  表示一个字符集或用在expr中
    |   表示‘或‘,匹配一组可选的字符
    ==========================================================

    通配符
        bash shell本身不支持正则表达式,支持的是shell命令和工具
        shell支持通配符
    =============通配符=======================================
    *   任意位的任意字符
    ?   任意一个字符
    []  表示范围
    {}  一组表达式组合,这些表示是‘或‘的关系
    ^   表示取反

    例子:
        ls -l *.awk         以.awk结尾的文件
        ls -l 0?.pem            以0开头,后面跟一个字符,且后缀是.pem的文件
        ls -l [a-h]*.awk        以[a-h]开头的.awk文件
        ls -l [a-h]*.[^awk]*        以[a-h]开头,且后缀不是awk的文件
        ls -l {[a-h]*.awk,0?.pem}   以0开头,后面跟一个字符,且后缀是.pem的文件 或者 以[a-h]开头的.awk文件
    ==========================================================

    POSIX
        为了保持不同国家的字符编码的一致性,POSIX(Portable Operating System Interface)增加了特殊的字符类,以[:classname]的格式给出,grep命令支持POSIX字符类。
    ==============POSIX=======================================
    类名          意义
    [:upper:]       [A-Z]
    [:lower:]       [a-z]
    [:digit:]       [0-9]
    [:alnum:]       [0-9a-zA-Z]
    [:space:]       空格或Tab
    [:alpha:]       [a-zA-Z]
    [:cntrl:]       ctrl键
    [:graph:]或[:print:] 表示ASCII码33-126之间的字符
    [:xdigit:]      十六进制数字[0-9a-fA-F]
    ==========================================================
时间: 2024-12-21 16:37:08

linux内的正则表达式的相关文章

Linux学习之正则表达式&grep&egrep

我们经常需要在文档中搜索符合自己要求的内容,这些部分可能分散在文档的各个位置,各个角落.可以利用关键字例如/keyword或者?keyword一个一个的搜索,还有我可能不止想搜索关键字,而是指定一个范围,怎样操作?而且怎样把这些搜索到的内容集中地显示出来?使用正则表达式搜索字串的grep命令和egrep命令就可以满足我们的这个要求. 正则表达式(Regular Expression)是一种字符书写的模式,以行为单位进行字符的处理,透过一些特殊字符的辅助,利用这种模式可以轻易地达到对字符的搜索.删

GNU/Linux平台上正则表达式的简单使用

友情提醒:本博文涉及的内容中涉及到的系统实践操作在Centos6.5上实现,GNU/Linux简称为linux,GNU/grep简称为grep,GNU/sed简称为sed,GNU/gawk简称为awk. -------------------------------------------------楔子--------------------------------------------- 小酒馆一角落,一胖三瘦围着方桌坐定,大快耳颐后正在唠嗑. 瘦子甲:"胖子,为什么要把正则表达式和lin

linux 命令grep正则表达式

Linux 命令grep正则表达式 在linux里面有处理文本的三剑,现在我要说的就是grep正则表达式的使用,正则表达式只是一种表示法,只要工具支持这种表示法,那么该工具就可以处理正则表达式的字符串.vi grep ,awk ,sed 等都支持正则表达式..正则表达式有基本正则表达式和扩展正则表达式. grep默认就是基本表达式. 基本正则表达式: 默认匹配次数:贪婪模式,尽可能多的去匹配. 扩展正则表达式:基于基本正则表达式多加了一些功能,基本一样. 1. grep命令 grep [参数]

linux内通信及关机重启

linux内通信 关机重启write 用户名开始写内容 Ctrl+退格键或delete删除Ctrl+d保存结束一定要是在线用户 wall(write all)给所有用户发信息wall message mail 用户名 不管用户在不在线邮件在/var/spool/mail/root下>N(new) root(谁给你发的) & 1 看第一封邮件& h 看标题& d 1 删除& q 退出mail主要看系统发的邮件 last 哪个用户什时候登录过,什么方式,从哪登录, 持续登

linux 中的正则表达式用法小结

首先:在linux中 ,正则表达式是针对文件内容而言的.查用在shell的grep,sed ,awk等相关命令之中. 正则表达式的元字符: .  : 表示任意字符 字符次数锚定: * : 表示* 之前的字符或模式出现任意次,其中包括0次 ?:   表示?之前的字符出现0次或一次,需要注意的是,在linux中需要是\?. \{m,n\}:表示其前面的字符或模式出现至少m次,至多n次 \{m,\}: 表示其前面的字符至少出现m次 \{0,n\}:表示其前面的字符至多出现n次 位置锚定: ^: 表示以

卸载Linux内置的AMP软件

卸载Linux内置的AMP软件 在安装Linux软件的LAMP环境时,必须有一个前提:必须要完全卸载掉系统内置的AMP软件. 1.卸载httpd软件(Apache) 如果在卸载软件时出现依赖关系,我们可以在服务名称后面添加一个参数-nodeps来强制卸载该软件. 2.卸载mysql软件 3.卸载php软件

Linux内

body { font-family: @楷体; font-size: 11.5pt; line-height: 1.5; } html, body { color: black; background-color: #E0D1DE; } h1 { font-size:1.5em; font-weight:bold; } h2 { font-size:1.4em; font-weight:bold; } h3 { font-size:1.3em; font-weight:bold; } h4 {

linux内网机器访问外网代理设置

1.检查机器 在操作中发现访问外网的机器本身不能使用yum 安装软件,故需要配置yum安装源.如果可以的,这步可忽略. [[email protected] test]# lsb_release -a LSB Version:    :core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd64:printing-4.

三十道linux内核面试题

1. Linux中主要有哪几种内核锁? Linux的同步机制从2.0到2.6以来不断发展完善.从最初的原子操作,到后来的信号量,从大内核锁到今天的自旋锁.这些同步机制的发展伴随Linux从单处理器到对称多处理器的过渡:伴随着从非抢占内核到抢占内核的过度.Linux的锁机制越来越有效,也越来越复杂. 自旋锁最多只能被一个可执行线程持有,如果一个执行线程试图请求一个已被争用已经被持有)的自旋锁,那么这个线程就会一直进行忙循环--旋转--等待锁重新可用.要是锁未被争用,请求它的执行线程便能立刻得到它并