正则表达式(regular expression):
使用一些特殊符号+字母和数字按照某个规则组合成一个公式来表示某个意思这就叫正则表达式
元字符:有特殊含义的字符,可以表示其他的含义
^可以代表以什么开头 ^junjie
$可以代表以什么结尾 wang$
?表示前面的字符出现0次或者一次
+表示前面的字符出现一次以上
*表示前面的字符出现0次或者任意次
.代表任意单个字符
.* 代表所有的字符
\s 空格
[abc] 匹配[]里的字符
[^a-z] 取不包含a-z的,是一个一个字符去看 与-v有区别,是一行一行的去看 颗粒度问题
{n} 前面字符出现n次
{m,n} 前面出现m-n次
[a-z],[0-9],[a-Z],[0-Z]
单词的定界符号
\< 表示单词以什么开头
\<san 单词以san开头
\> 表示单词以什么结尾
\b
\<sanchuang\> 等同于 \bsanchuang\b
转义字符 \ \\
? * +默认只能修饰前面一个字符
利用圆括号()可以实现多个字符分组
在圆括号中利用|实现或者的功能
egrep,sed,awk 支持正则表达式
|在grep里是或者的意思
实例:
curl https://www.sanchuangedu.cn >sc.html
cat sc.html |egrep ".jpg|.png"
cat name.txt | egrep "shen.{4}" shen后面四个字符
cat name.txt | egrep "^&" 空行
cat /etc/ssh/sshd_config |egrep "^#" 取以#开头
cat /etc/ssh/sshd_config |egrep -v "^#|^$" 去掉以#开头和空行
cat name.txt |egrep "^[^0-9]" 不是以数字开头的行
egrep "\b[a-Z]{13}\b" 过滤出13个字符的单词
curl:linux里字符界面的浏览器(http,ftp,https等)
grep
-v 反转查找,输出不匹配的
-i 不区分大小写
-n 顺便输出行号
-o 只显示匹配的内容 only-match
-A after 在之前
-B before 在之后
-C centext 上下文
-r 递归查找
-E 对正则表达式支持
1.基本正则
* . ^ $
2.扩展正则
| ? + {}
uniq(unique) 去重
默认情况下只能去除重复的行
-c 统计重复的次数
sort 排序
默认情况下按照每行的第一个字符的ascll码值进行排序 升序
sort的分隔符是空白(空格和tab) 多个和单个一样
-n 可以进行数值进行排序 默认升序
-k 指定列排序
-r 降序
-t 指定分隔符