正则表达式:
1.正则表达式是一种文本模式匹配,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。
它是一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子串、将匹配的子串替换或者从某个字符串中取出某个条件的子串。
2.正则表达式就像数学公式一样,我们可以通过正则表达式提供的一些特殊字符来生成一个匹配对应字符串的公式,用此来从海量数据中匹配出自己想要的数据。
3.正则表达式是一个三方产品,被常用计算机语言广泛使用,比如:shell、PHP、python、java、js等!
4.shell也支持正则表达式,但不是所有的命令都支持正则表达式,常见的的命令中只有grep、sed、awk命令支持正则表达式。
-【基础正则 BRE】
定位符使用技巧:同时锚定开头和结尾,做精确匹配;单一锚定开头和结尾,做模糊匹配。
定位符 说明
^ 锚定开头 ^a 以a开头 默认锚定一个字符
$ 锚定结尾 a$ 以a结尾 默认锚定一个字符
找出文件/etc/service 以s开头的信息
找出/oldboy目录中 文件内容是oldboy开头的文件
老三: grep
grep "^s" /etc/services
[root@localhost oldboy]# grep -r "^oldboy" /oldboy
/oldboy/oldboy.txt:oldboy
/oldboy/oldbaby.txt:oldboy01
/oldboy/oldboy01/oldboy.txt:oldboy
/oldboy/oldboy01/oldbaby.txt:oldboy01
老二: sed
sed -n ‘/^s/p‘ /etc/services
老大: awk
awk ‘/^s/‘ /etc/services
. --- 匹配任意一个且只有一个字符信息
二、特殊字符
匹配符:匹配字符串,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。
[ ] ---------定义字符类,匹配括号中的一个字符
[abc]: 匹配字符集合内的任意一个字符[a-z,A-Z],[0-9]等
匹配出文件中所有的字母信息(大小写问题)
~~~测试文件中以I开头行和以m开头的行都找出来】
[^abc]:匹配不包含^后面的任意一个字符的内容
练习题: 去除文件中所有符号信息
grep "[^0-9a-Z]" oldboy.txt
【表示匹配不包含I, ^, o的信息】
[ ^ ] 表示否定括号中出现字符类中的字符,取反。
+ --- 匹配加号字符前面的一个字符 连续出现1次或者多次的情况
{} --- 匹配花括号号字符前面的一个字符 匹配指定连续出现多少次
{n,m} --- 至少连续匹配n次,最多连续匹配m次
{n} --- 正好连续匹配n次
{n,} --- 最少连续匹配n次,最多连续匹配没有限制
{,m} --- 最少连续匹配0次, 最多连续匹配m次
echo 123456 --> <123><456>
1.获取系统ip:
#字符串的对调
获取文件的权限
原文:https://www.cnblogs.com/zhanghongqi/p/11585523.html