linux shell中的正则表达式
正则表达式的使用

正则表达式,又称规则表达式。(英语:Regular Expression [ˈreɡjulə] 规则的 [ iksˈpreʃən] 表达 ),在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
正则表达式不只有一种,而且LINUX中不同的程序可能会使用不同的正则表达式,如:
工具:grep sed awk (这三个并称为linux中的文本三剑客)
LINUX中常用的有两种正则表达式引擎
l 基础正则表达式:BRE
l 扩展正则表达式: ERE
Shell正则表达式的组成
基础正则表达式
|
特别字符 |
描述 |
|
$ |
匹配输入字符串的结尾位置。要匹配 $ 字符本身,请使用 \$ |
|
( ) |
标记一个子表达式的开始和结束位置。要匹配这些字符,请使用 \( 和 \) |
|
* |
匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \* |
|
+ |
匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+ |
|
. |
匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \. |
|
[ |
标记一个中括号表达式的开始。要匹配 [,请使用 \[ |
|
? |
匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \? |
|
\ |
将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "(" |
|
^ |
匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \^ |
|
{ |
标记限定符表达式的开始。要匹配 {,请使用 \{ |
|
| |
指明两项之间的一个选择。要匹配 |,请使用 \| 如: Y | y |
|
定位符 |
|
|
^ |
匹配输入字符串开始的位置 |
|
$ |
匹配输入字符串结尾的位置 |
|
非打印字符 |
|
|
\n |
匹配一个换行符 |
|
\r |
匹配一个回车符 |
|
\t |
匹配一个制表符 |
例:统计/etc/ssh/sshd_config文件中除去空行和#号开头的行的行数
[root@www ~]# grep -v "^$\|^#" /etc/ssh/sshd_config #使用基础正则表达式
[root@www ~]# grep -E -v "^$|^#" /etc/ssh/sshd_config #扩展正则表达式
[root@www ~]# egrep -v "^$|^#" /etc/ssh/sshd_config #扩展正则表达式
例2:点字符
[root@www ~]# grep .ot /etc/passwd #查找passwd文件包括.ot 的字符
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
setroubleshoot:x:993:990::/var/lib/setroubleshoot:/sbin/nologin
linux shell中的正则表达式的更多相关文章
- 任督二脉之Shell中的正则表达式
VBird说学习Linux,掌握了Shell和正则就相当于打通了任督二脉,此后能力的成长才会突飞猛进. Shell的基础学习之前已经总结了一篇博客:http://www.cnblogs.com/jyz ...
- Linux shell中的一个问题 ${}带正则匹配的表达式
目前在准备龙芯项目的PMON,在研究其编译过程的时候,看到一些make 语句,百思不得其解.后来在shell编程中看到一点资料,牵扯到Shell中的正则表达式.故记录下来,以备后来查阅. 问题: 在某 ...
- Linux Shell中的特殊符号和含义简明总结(包含了绝大部份)
case语句适用于需要进行多重分支的应用情况. case分支语句的格式如下: case $变量名 in 模式1) 命令序列1 ;; 模式2) 命令序列2 ;; *) 默认执行的命令序列 ...
- linux shell 中的sleep命令
开始还以为是这样的语法: sleep(1), 后面发现是: linux shell 中的sleep命令 分类: LINUX 在有的shell(比如linux中的bash)中sleep还支持睡眠(分,小 ...
- 理解 Linux shell 中的一个方言:2>&1
理解 Linux shell 中的一个方言:2>&1 2016-11-14 杜亦舒 前言 在使用 linux 命令或者 shell 编程时,这个用法常会遇到 2>&1 如 ...
- linux shell 中的位置变量
对于linux shell 中的位置变量,我一直以来都是吐不出来又咽不下去,每次看到都不懂,不懂了就去百度google,看完了又忘,真是慢性咽炎啊.现在认真想想也是,其实自己一直以来都没有好好学习过, ...
- Linux shell中的竖线(|)——…
原文地址:Linux shell中的竖线(|)--管道符号作者:潇潇 管道符号,是unix一个很强大的功能,符号为一条竖线:"|". 用法: command 1 | command ...
- [转载]Linux shell中的竖线(|)——管道符号
原文地址:Linux shell中的竖线(|)--管道符号作者:潇潇 管道符号,是unix一个很强大的功能,符号为一条竖线:"|". 用法: command 1 | command ...
- Linux Shell中有三种引号的用法
Linux Shell中有三种引号,分别为双引号(" ").单引号(' ')以及反引号(` `). 其中双引号对字符串中出现的$.''.`和\进行替换:单引号不进行替换,将字符串中 ...
随机推荐
- 苹果ios开发
苹果上架:https://blog.csdn.net/pcf1995/article/details/79650345
- SVN服务之VisualSVN-Server和TortoiseSVN
SVN客户端程序:TortoiseSVN SVN服务器程序:VisualSVN-Server 目前有个项目,需要版本服务器,由于习惯了svn的使用,让这边搭建一台svn服务器,做了一下整理,只满足 ...
- Python(3) 进制转换
2进制 :0b8进制: 0o16进制: 0x10进制:原来的数据 进制转换:bin() 方法:转化为 2进制 >>> bin(10)'0b1010'oct() 方法:转化为 8进制& ...
- AGC014做题记录
貌似是比较水的一场 可是我依然8会做 C 发现除了第一步以外的走法都不会受到锁的影响并且一定选四个方向距离最近的径直走过去 那么第一步能走到的联通块取个min就好了 (我竟然第一发特别认真的写了一个D ...
- 【学习笔记】Minkowski和
这还是个被我咕了N久的玩意 Minkowski和是一个奇怪的玩意 他长这样 $S={a+b \| a \in A , b \in B}$ AB可以是点集也可是向量集(显然) 他可以处理一些奇怪的东西 ...
- 【转载】 原生js判断某个元素是否滚动到底部
document.querySelector('.content').addEventListener('scroll',function () { //读取内容区域的真实高度(滚动条高) // co ...
- python的setup.py文件
最近工作需要,用Cython写了*.pyx扩展,并将其编译成C文件,最后转换为so扩展,供python引用使用 distutils 编译,建立一个setup.py 的脚本from distutils. ...
- SpringBoot整合redis把用户登录信息存入redis
首先引入redis的jai包 <dependency> <groupId>org.springframework.boot</groupId> <artifa ...
- 【NOIP2013模拟】导弹防御塔
题目 Freda的城堡-- "Freda,城堡外发现了一些入侵者!" "喵...刚刚探究完了城堡建设的方案数,我要歇一会儿嘛lala~" "可是入侵者 ...
- 【leetcode】1170. Compare Strings by Frequency of the Smallest Character
题目如下: Let's define a function f(s) over a non-empty string s, which calculates the frequency of the ...