Linux正则表达式与通配符

Linux正则表达式与通配符,第1张

正则表达式:在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索或替换那些符合某个模式的文本内容。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。

只有掌握了正则表达式,才能全面地掌握 Linux 下的常用文本工具(例如:grep、egrep、GUN sed、 Awk 等) 的用法

grep、sed、awk天然支持正则

grep -v代表反选,反向选择匹配到的内容

grep -E代表使用扩展正则

grep -P代表使用Perl正则

sed -r 代表使用扩展正则

正则表达式分为三类(man grep可以看到,分别是basic RegExs,extended RegExs,perl RegExs)

1、基本的正则表达式(Basic Regular Expression 又叫 Basic RegEx 简称 BREs)

2、扩展的正则表达式(Extended Regular Expression 又叫 Extended RegEx 简称 EREs)

3、Perl 的正则表达式(Perl Regular Expression 又叫 Perl RegEx 简称 PREs)

b. 处理过程:查找文本文件中是否包含要查找的 “关键字”(关键字可以是正则表达式) ,默认返回匹配的该行的内容

c. grep|egrep处理文件时,按行处理 |

| sed | sed | sed -r | - | a. 处理对象:文本文件

b.处理 *** 作:对文本文件的内容进行 查找、替换、删除、增加等 *** 作

c. sed 在处理文本文件的时候,按行处理 |

| awk | - | awk | - | a. awk 处理的对象:文本文件

b. awk 处理 *** 作:主要是对列进行 *** 作 |

注意:egrep 或 sed -r 默认使用扩展正则表达式(EREs),一般特殊字符({})可以不转义

grep -E 以及egrep(Extend Regular Expression)

Linux通配符和三剑客的正则表达式是不一样的,因此,代表的意义也有较大的区别

通配符一般用户命令行bash环境,而linux正则表达式用于grep, sed, awk场景。

通配符说明

示例:* 的使用:代表任意0-N个字符,代表所有字符

管道命令符 " | " 的作用是将前一个命令的标准输出当作后一个命令的标准输入,格式为"命令A|命令B"。

例如:

搜索rsyslogd进程: $ ps -ef | grep rsyslogd

用反野形式查看/etc 目录中有哪些文件: $ ls -l /etc/ | more

bash解释器支持多种文本通配符,包括:

我们之前在学文本查询搜索命令时就用到了通配符,例如,在 /etc 目录下搜索所有的以host开头的文件:

$ find /etc -name "host*"

另外,bash解释器还支持很多的特殊字符扩展:

例如:

先定义名称为PRICE的变量值为5

$ PRICE=5

输出“价格是5”:

输出“价格是$5”,但因为美元符号与代表变量取值的$符号冲突,所以需要用到转义字符:

使用单引号,变量将不再被取值:

执行 uname -a 后可以查看到本机内核的版本与架构信息(反引号里面的命令会被执行):


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/5933285.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-08
下一篇 2023-03-08

发表评论

登录后才能评论

评论列表(0条)

保存