创业网站建设政策,友链交易网,鸿星尔克的网络营销策略,横琴网站建设正则表达式 1.通配符和正则表达式的区别2.基本正则表达式2.1 元字符 #xff08;字符匹配)2.2 表示匹配次数2.4 位置锚定2.5 分组 和 或者 3.扩展正则表达式4.部分文本处理工具4.1 tr 命令4.2 cut命令4.3 sort命令4.4 uniq命令 1.通配符和正则表达式的区别
通配符一般用于文件… 正则表达式 1.通配符和正则表达式的区别2.基本正则表达式2.1 元字符 字符匹配)2.2 表示匹配次数2.4 位置锚定2.5 分组 和 或者 3.扩展正则表达式4.部分文本处理工具4.1 tr 命令4.2 cut命令4.3 sort命令4.4 uniq命令 1.通配符和正则表达式的区别
通配符一般用于文件名匹配。 正则表达式一般用于匹配文件内容。
2.基本正则表达式
2.1 元字符 字符匹配)
匹配符1功能.匹配任意单个字符可以是一个汉字[ … ]匹配指定范围内的任意单个字符[ ^… ]匹配指定范围外的任意单个字符^ [ … ]匹配以…开头的
#补充说明#
. #表示匹配任意字符[. ] #方括号中的. 就是本身的含义 /. #和[. ]相同匹配符2功能[:alnum:]字母和数字[:alpha:]代表任何英文大小写字符亦即 A-Z, a-z[:upper:]大写字母相当于[A-Z][:lower:]小写字母,相当于[a-z][:blank:]空白字符空格和制表符[:space:]包括空格、制表符(水平和垂直)、换行符、回车符等各种类型的空白[:cntrl:]不可打印的控制字符退格、删除、警铃…[:digit:]十进制数字[:xdigit:]十六进制数字[:print:]可打印字符[:graph:]可打印的非空白字符[:punct:]标点符号
#补充说明#
[:space:] 比[:blank:]包含的范围广匹配符3功能\w匹配单词构成部分\W匹配非单词构成部分\s匹配任何非空白字符\S匹配任何空白字符包括空格、制表符、换页符等等
#补充说明#
\w 等价于[_[:alnum:]]
\W 等价于[^_[:alnum:]]
\S 等价于 [^ \f\n\r\t\v]
\s 等价于 [ \f\n\r\t\v]2.2 表示匹配次数
匹配符功能*匹配前面的字符任意次包括0次.*任意长度的任意字符,不包括0次?匹配其前面的字符出现0次或1次匹配其前面的字符出现最少1次{n}匹配前面的字符n次{m,n}匹配前面的字符至少m次至多n次{,n}匹配前面的字符至多n次,n{n,}匹配前面的字符至少n次
示例怎么提取IP地址
ifconfig ens33|grep netmask \
|grep -o [0-9]\\.[0-9]\\.[0-9]\\.[0-9]\|head -n1# \ 表示匹配前面的字符最少一次
# \. 表示转译 因为.表示匹配任意字符2.4 位置锚定
匹配符功能^行首锚定$行尾锚定 ^$空行^ [[:space:]]*$空白行\ 或 \b 词首锚定\ 或 \b词尾锚定\bPATTERN\b匹配整个单词
示例1统计/etc/fstab 文件中有多少真实单词
cat /etc/fstab | grep -o \b[a-zA-Z]\\b|wc -l
#不要有空格示例2: 统计/etc/fstab文件中不是已#号开头的非空行的行数
cat /etc/fstab | grep ^[^#[:space:]] | wc -l
# ^ 以...开头
#[非# 和 非空行]#或者
grep -vE ^\s*#|^$2.5 分组 和 或者
#分组#
( x y)
将多个字符捆绑在一起当作一个整体处理如\(root\)#或者#x \| y x或者y示例:组合运用
echo 1abc 2abc 3abc |grep -o 1\|2abc
#只匹配了1或者2abc
1
2abc
echo 1abc 2abc 3abc |grep -o \(1\|2\)abc
#1abc或者2abc
1abc
2abc3.扩展正则表达式
#基本格式#
grep -E-E表示使用扩展正则表达式匹配符功能*匹配前面子表达式0次或者多次.*任意长度的任意字符匹配前面子表达式0次或者1次即可有可无与星号相似表示其前面字符出现一次或多次但必须出现一次,1{n,m}匹配前面的子表达式n到m次{m}匹配前面的子表达式m次{n,}匹配前面的子表达式不少于n次, n{n}匹配前面的子表达式最多n次nI用逻辑或方式指定正则表达式要是用的模式字符串分组将括号中的字符串作为一个整体
示例1提取当前主机的IP地址
ifconfig ens33 | grep netmask| grep -Eo ([0-9]{1,3}\.){3}[0-9]{1,3}|head -n 1
#-E表示使用扩展正则表达式 192.168.2.100 #执行结果 4.部分文本处理工具
4.1 tr 命令
tr命令用于字符转换或字符删除。
#基本格式#
tr [选项] 字符集1 字符集2
#字符集1 是要被替换或删除的字符集
#字符集2 是要替换为的字符集#常用选项#-c 除了指定的字符之外的所有字符都会被替换
-d 表示删除指定的字符
-s 表示压缩重复的字符为单个字符示例1 将文本中的大写字母转换为小写字母
echo Hello World | tr [:upper:] [:lower:]
hello world示例2删除文本中的数字
echo 123abc456 | tr -d [:digit:]
abc示例3将文本中的空格合并为单个空格
echo Hello World | tr -s
Hello World示例4 删除文本中的特殊字符
echo Hello #World | tr -d #
Hello World4.2 cut命令
cut命令可以提取文本数据中指定的列。 cut命令可以根据指定的字符位置或指定的字段分隔符来截取文本并将结果输出到标准输出或指定的文件。
#基本格式#
cut [选项] 文件-d 指定字段的分隔符默认为制表符。
-f 指定要提取的字段列表字段列表之间使用逗号分隔例如-f 1,3,5
-c 指定要提取的字符位置列表字符位置列表之间使用逗号分隔例如-c 1-5,10-15
--complement 提取指定字段或字符位置之外的内容#提取文件的第一列cut -f1 file.txt#提取文件的第二、四、五列并使用逗号作为分隔符cut -f2,4,5 -d, file.txt#提取文件的前五个字符cut -c1-5 file.txt# 提取文件的第一列以外的所有列cut -f 2 --complement file.txt4.3 sort命令
sort命令用于对文本文件进行排序默认以字母排序。
#基本格式#
sort [选项] file#常用选项#
-b 忽略行首空白字符
-r 以倒序方式进行排序
-f 忽略大小写进行排序
-n 按照数值大小进行排序
-u 去除重复行
-t 指定字段分隔符
-k 指定按照字段排序4.4 uniq命令
uniq 命令用于找出或删除文本文件中连续出现的重复行。
#基本格式#
uniq [选项] [输入文件 [输出文件]]#如果不指定输入文件则会从标准输入获取数据
#如果不指定输出文件则结果会打印到标准输出#常用选项#-c 在输出结果中显示每行重复出现的次数。
-d 只显示重复行。
-u 只显示不重复的行。