grep使用正则表达式搜索IP地址
递归搜索当前目录及其子目录、子目录的子目录……所包含文件是否包含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