正则表达式的作用:主要做模糊匹配
正则与通配符的区别:
1、通配符:通配符是通配符。是匹配文件名的。是完全匹配(搜出来,没有多余的)
操作文件名的命令:ls、find、cp
- * #匹配任意(多个)字符
- ? #匹配任意一个字符
- [] #匹配中括号的一个字符
下图,打印出来的是abc开头的(因为*放在最后了),多余的一个都没有
2、正则:通配符不要和正则的通配符搞混。是匹配文件内容的。是包含匹配(匹配一个词,列出一整行)。
操作字符串的命令grep、awk、sed
注意:双引号是定界符
案例:
案例1-1:点
案例1-2:
案例1-3:“.*” #匹配所有内容
案例2-1:“^$” #匹配空白行
案例3-1:中括号是或的关系
案例3-2:“[0-9]” #匹配任意一个数字
案例3-3:“^[a-z]” #匹配小写字母开头的行
案例3-4:中括号内有^是取反(匹配中括号字符以后的任意一个字符)
注意:^在外是匹配行首(开头),在内是取反
“^[^a-z]” #匹配不用小写字符开头的行
“^[^a-zA-Z]” #匹配不用字母开头的行
案例4-1:转义符,让特殊字符失效,失效后点就是点
案例5-1:“\{n\}”不带逗号是等于;花括号前要转义
“a\{3\}”#匹配a字符连续出现3次的字符串
"[0-9]\{3\}" #匹配连续3个数字
案例5-2:“\{n,\}”带上逗号是大于;花括号前要转义
"^a[0-9]\{3,\}[a-z]" #匹配开头最少连续3个数字开头的行
案例5-3:\{n,m\}”带上逗号是小于,大于;花括号前要转义
"sa\{\1,3\}i" #匹配在s和i之间,最少有一个a,最多3个a
案例6:"[0-9]\{4\}[0-9]\{2\}[0-9]\{2\}" #匹配19920209格式的字符串
案例7:"[0-9]\{1,3\}\.[0-9]\{1,3\}" #匹配ip
注意:同样是获取文件的内容获取整行用grep + 正则;获取整列用cut + 自带的参数
字符串截取命令
1、字符截取整列
语法:cut [选项] 文件名
选项:-f 列号(去第几列的数据); -d 分隔符(按指定的分隔符截取,带引号)
2、使用printf输出命令
注意:print只在awk命令中有效,这俩的区别就是print自带换行
注意:$()是调用系统命令
3、字符截取awk命令 注意:输出要加单引'' ; 动作要用{}
因为cut不能识别df的空格分隔符,所以要用awk
条件表达式--开始和结束条件
条件表达式也可以使用关系运算符
4、字符替换命令sed
sed是个包括在所有linux平台的轻量级编辑器,主打增删改查
注意:awk的动作是加{} ; sed的动作是加单引
注意:正则[]号中是或的关系;sed 命令动作中的逗号是&&的关系
5、字符处理命令
sort 排序命令
sort /etc/passwd #对该文件进行排序(默认按照字母顺序升序)
sort -r /etc/passwd #降序排序
注意:下图不加-n 数字他也认为是字符串
6、统计命令
语法:wc [选项] 文件名