递归搜索当前目录及其子目录、子目录的子目录……所包含文件是否包含IP地址
grep -r "[[:digit:]]\{1,3\}\.[[:digit:]]\{1,3\}\.[[:digit:]]\{1,3\}\.[[:digit:]]\{1,3\}" ./*
egrep '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}' 文件名
你可以分别使用 ^ 和 $ 符号来正则匹配输入行的开始或结尾。
标准的字符类名称如下:
[:alnum:]
- 字母数字字符[:alpha:]
- 字母字符[:blank:]
- 空字符: 空格键符 和 制表符[:digit:]
- 数字: '0 1 2 3 4 5 6 7 8 9'[:lower:]
- 小写字母: 'a b c d e f g h i j k l m n o p q r s t u v w x y z'[:space:]
- 空格字符: 制表符、换行符、垂直制表符、换页符、回车符和空格键符[:upper:]
- 大写字母: 'A B C D E F G H I J K L M N O P Q R S T U V W X Y Z'
怎么使用 grep 的“或”匹配?
grep -E 'word1|word2' 文件名
或 egrep 'word1|word2' 文件名 或者
grep 'word1\|word2' 文件名
怎么样使 grep 命令高亮显示?
grep --color 正则表达式 文件名
怎么样仅仅只显示匹配出的字符,而不是匹配出的行?
grep -o 正则表达式 文件名
正则表达式限定符
限定符 | 描述 |
---|---|
. | 匹配任意的一个字符。 |
? | 匹配前面的子表达式,最多一次。 |
* | 匹配前面的子表达式零次或多次。 |
+ | 匹配前面的子表达式一次或多次。 |
{N} | 匹配前面的子表达式 N 次。 |
{N,} | 匹配前面的子表达式 N 次到多次。 |
{N,M} | 匹配前面的子表达式 N 到 M 次,至少 N 次至多 M 次。 |
- | 只要不是在序列开始、结尾或者序列的结束点上,表示序列范围。 |
^ | 匹配一行开始的空字符串;也表示字符不在要匹配的列表中。 |
$ | 匹配一行末尾的空字符串。 |
\b | 匹配一个单词前后的空字符串。 |
\B | 匹配一个单词中间的空字符串。 |
\< | 匹配单词前面的空字符串。 |
\> | 匹配单词后面的空字符串。 |
egrep 等同于 grep -E 。它会以扩展的正则表达式的模式来解释模式。
参考:
1、https://linux.cn/article-6941-1.html