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 的“或”匹配?

  1. grep -E 'word1|word2' 文件名  或  egrep 'word1|word2' 文件名 或者 grep 'word1\|word2' 文件名

怎么样使 grep 命令高亮显示?

  1. grep --color 正则表达式 文件名

怎么样仅仅只显示匹配出的字符,而不是匹配出的行?

  1. 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

posted @ 2018-01-09 11:46  脚本小娃子  阅读(3986)  评论(0编辑  收藏  举报