美文网首页
shell之正则表达式

shell之正则表达式

作者: 小小全_ | 来源:发表于2019-03-06 16:45 被阅读0次

1.正则表达式

正则表达式:描述某些字符串匹配规则的工具

2.常见的支持正则表达式的UNIX工具:

grep命令族:用于匹配文本行
sed流编辑器:用于改变输入流
awk:用于处理字符串的语言
more或者less等:文件查看程序
ed,vi或者vim等:文本编辑器

实践正则表达式:

#! /bin/bash
str=`cat version.txt|grep rev`
echo"$str"

(cat命令用来显示文本内容,竖线是管道,表示将cat命苦的输出结果作为后面的那个命令的输入,grep命令用来查找文本,rev指要匹配的字符串。上面执行结果表示version.txt文件中的某一行含义rev这个字符串,实际上,grep命令后面的参数可以换成任意的正则表达式)

3.正则表达式原理

正则表达式是对文本进行过滤的工具,之所以有过滤文本的功能,因为它定义了一系列的元字符,通过元字符配合其他字符来表达出一种规则。只有符合该规则的文本才能保留下来。
元字符:描述字符的字符。
元字符作用:对表达式的内容,转换以及各种操作信息进行描述。

4.正则表达式用法

1)行首定位符 “^”

用来匹配行首的字符。表示行首的字符是^后面的那个字符。
行首定位符位于所作用的字符之前

例如:列出/etc目录中的以字母po开头的文件名

str=`ls /etc |grep "^po"`
echo"$str"

(^po理解为第一个字符为p,紧跟着一个字母o的文本行。不要理解为字符串po开头的文本行。)

2)行尾定位符”$”

作用:定位文本行的末尾。
行尾定位符位于所作用的字符之后。

列出/etc目录中以conf结尾的文件名

str=`ls /etc |grep "conf$"`

echo"$str"

结果:anthy-conf
asound.conf

注意:

精确匹配一个文本行:^cat完全匹配cat的文本行 ^:匹配所有[空行]
单独的^和$没有任何意义,因为任何一个文本行都有开头和结尾。

[参考链接:]
https://blog.csdn.net/qq504196282/article/details/52995198
https://www.cnblogs.com/OldJack/p/6607155.html

相关文章

网友评论

      本文标题:shell之正则表达式

      本文链接:https://www.haomeiwen.com/subject/ixlxpqtx.html