从cdn日志中提取ip

腾讯云CDN流量被人恶意盗刷,需要提取ip拉黑。

grep命令的使用和原理

grep是一个非常实用的命令,用于搜索文本并输出匹配特定模式的行。grep的名称源于“global regular expression print”,意为“全局正则表达式打印”。

命令格式:

grep [选项] '模式' 文件名

参数说明: - -E :使用扩展正则表达式。 - -i :忽略大小写。 - -v :输出不匹配模式的行。 - -c :计数匹配行的数量。 - -n :显示匹配行及其行号。 - -r :递归地搜索子目录中的文件。

grep的原理主要是基于正则表达式的模式匹配,它可以处理文件中的每一行,检查是否含有符合正则表达式的字符串,如果有,则输出该行。

示例代码:

搜索文件中包含单词"error"的行

grep 'error' 2025112423-www.rrbay.com

sort和uniq命令的组合使用

sort命令用于对文本文件的行进行排序,它可以处理来自标准输入或文件的输入。而uniq命令用于删除重复的行。

命令格式:

sort 文件名 | uniq

参数说明: - sort命令: - -u :只显示唯一的行。 - -o :将排序结果输出到指定文件。 - -r :逆序排序。 - uniq命令: - -c :统计每行重复的次数。

使用sort和uniq组合时,通常先使用sort命令对输入的文本行进行排序,然后再用uniq命令过滤掉重复行。由于uniq只能作用于已经排序的数据,因此它经常与sort命令一起使用。

示例代码:

排序并去重

sort 2025112423-www.rrbay.com | uniq

命令行工具在日志分析中的应用实例

  • 使用grep提取IP地址

当需要从日志文件中提取IP地址时,grep命令配合正则表达式可以非常高效地完成这项任务。

示例命令:

提取日志文件中所有的IP地址

grep -Eo '[0-9]+(\.[0-9]+){3}' 2025112423-www.rrbay.com

在这个命令中, -Eo 选项告诉grep使用扩展正则表达式,并且只输出匹配部分。正则表达式 '[0-9]+(.[0-9]+){3}' 用于匹配IP地址的标准格式。

  • 利用sort和uniq进行排序和去重

提取出IP地址后,往往需要对这些地址进行排序和去重,以获得不重复的IP地址列表并了解它们出现的频率。

提取IP地址并排序去重

这个命令序列首先将日志文件中的IP地址提取出来,然后对这些IP地址进行排序,接着使用uniq命令进行去重并计数,最后使用sort命令对结果进行逆序(从高到低)的数值排序。

cat 2025112423-www.rrbay.com | grep -Eo '[0-9]+(\.[0-9]+){3}' | sort | uniq -c | sort -nr >1.txt

提取IP地址并去重

这个命令序列首先将日志文件中的IP地址提取出来,然后对这些IP地址进行排序,接着使用uniq命令进行去重。

cat 2025112423-www.rrbay.com | grep -Eo '[0-9]+(\.[0-9]+){3}' | sort | uniq >1.txt

提取IP地址

grep -Eo '[0-9]+(\.[0-9]+){3}' 2025112423-www.rrbay.com >1.txt


标签:提取IP;去重;bash;grep;cat