01.Linux正则
# 01.正则表达式基础
# 1.1 正则与通配符
- 正则表达式使用单个字符来描述、匹配一系列符合某个句法规则的字符串。
- 在文本过滤工具里,都是用正则表达式,比如像awk,sed,等,是针对文件的内容的
- 而通配符多用在文件名上,比如查找find,ls,cp,等等
# 1.2 正则语法
选项 | 含义 | |
---|---|---|
^linux | 以linux开头的行 | grep '^root' /etc/passwd |
$php | 以php结尾的行 | grep 'bash$' /etc/passwd |
. | 匹配任意单字符 | |
.+ | 匹配任意多个字符 | |
.* | 匹配0个或多个字符 | grep 'roo.*' /etc/passwd |
[0-9a-z] | 匹配任意一个字符 | grep '[0-9a-z]oot' /etc/passwd 匹配 *oot (如: aoot、boot、coot、root) |
[abc] | 匹配abc中的一个 | grep -E 'root|mysql' /etc/passwd |
(linux)+ | 出现多次Linux单词 | grep -E '(root)+' /etc/passwd |
(web){2} | web出现两次以上 | grep -E '(root){1}' /etc/passwd |
a{n,m} | 重复前面a字符n到m次 | grep -E '(root){1,3}' /etc/passwd |
\ | 屏蔽转义 | grep '/bin/bash' /etc/passwd 匹配关键字 "/bin/bash" |
# 02.常用方法
- 查找100万条数据,过滤5xx错误,只过滤 json中的 request_uri 字段
$ tail -n 1000000 2019042410.access.log | grep "status\":\"5" | jq .request_uri | sort | uniq -c | sort -n
1
上次更新: 2024/3/13 15:35:10