递归搜索当前目录及其子目录、子目录的子目录……所包含文件是否包含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