正则表达式专门来操作字符串
grep 文本过滤
egrep 通过扩展正则过滤
fgrep 快速prep
awk 文本处理
sed 从输入中读取信息,经编辑后输出
grep 命令
语法
-E 使用扩展正则表达式进行匹配
-F 使用固定字符串匹配
-i 匹配时忽略大小写差异
正则表达式的组成
普通字符:普通字符串没有特殊含义
特殊字符:在正则表达中具有特殊的含义
BRE(普通正则 ) ERE(扩展正则)
. 表示任一字符
.* 表示匹配任意字符的任意长度
^ 匹配紧接着的正则表达式
$ 匹配前面的正则表达式
[] 匹配方括号内的任一字符
? 匹配字表达式零次或一次
china 匹配有china的行
^china 以china 开头的行
china$以china结尾的行
[Cc]:匹配China和china的行
Ch.na:匹配包含Ch两字母并且紧跟一个任意字符后又有na两个字符的行
[1234]匹配1,2,3,4中的一个
[1-9]数字中1-9中的一个
过滤IP地址
grep -E '([0-9]{1,3}\.){3}[0-9]{1,3}$' hosts
-E : 扩展grep(grep -E 或者 egrep):
使用扩展grep的主要好处是增加了额外的正则表达式元字符集。
2).
[0-9]{1,3} 表示数字出现3次;
3).
\. dot需要转义;
4).
(){3} 表示前面小括号的内容可以出现3次;
5)
[0-9]{1,3}$表示以[0-9]{1,3}为结尾
grep "^https\{0,1\}.*\..*" url.txt
grep -E 'https?.*\..*' url.txt
原文链接:https://www.f2er.com/regex/357854.html