sed、grep等日志分析利器

22 篇文章 0 订阅

需求示例:输出日志文件中某一时间段的日志,比如过去某天或某几天的日志,可以日期开始、结束时间作为关键字,获取两者中间的那段日志。

输出文件内容中指定两个关键字之间的内容
sed -n '1,/AAA/!p' filename |sed -n '1,/BBB/p'
输出文件filename内容中从关键字AAA到BBB之间的内容,可用于获取日志文件中两个时间段之间的文件内容
-n 按行输出,与p结合使用
!p 取反输出

上述方法的grep实现方式:

grep -A -1000 AAA filename|grep -B -1000 BBB

-1000,行数,根据文件实际情况,可以简单粗暴的设一个极大值即可。

 

需求示例:获取数据库binlog日志中某些sql语句及执行时间,因执行时间在语句之前的两三行,所以需要输出匹配sql语句及之前部分,结合grep -v 筛选掉部分干扰日志,可以干脆利索的获得想要的日志

 grep -A 5 foo file 显示foo及后5行

grep -B 5 foo file 显示foo及前5行

grep -C 5 foo file 显示file文件里匹配foo字串那行以及上下5行
 

实践应用:grep -B 3 "update t_business set " cdb_bin_mysqlbin.000004.sql |grep -v "SET T"|grep -B 3 "delete_status=1,"|grep -v "\-\-" |grep -v "# at "|grep -v "use \`xx_db" >111

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sedgrep 是两个在 Linux 环境下广泛使用命令行工具。它们可以配合使用来完成各种文本处理和匹配操作。 首先,sed 是一种流编辑器,可以对文本进行编辑和转换。它可以按照特定的规则对输入的文本进行修改,比如替换、删除、插入、打印等操作。通过使用正则表达式,sed 可以灵活地匹配和处理文本。通常,我们可以使用 sed 来搜索和替换文本中的特定字符或模式。 然后,grep 是一种文本搜索工具,用于查找符合指定规则的文本行。grep 可以根据正则表达式模式搜索某个文件中的匹配行,并将匹配的文本行打印出来。grep 可以配合管道(|)将输入的文本传递给其他命令进行处理。 通过将 sedgrep 结合使用,可以进行更复杂的文本处理。比如,我们可以使用 grep 命令筛选出匹配某个模式的文本行,然后再使用 sed 命令对这些文本行进行编辑或替换。这种组合操作可以提高文本处理的效率,并灵活处理各种文本格式的数据。 举个例子,假设我们有一个包含许多 URL 的日志文件,我们想要提取出其中的域名信息。我们可以使用 grep 命令筛选出包含 "http://" 或 "https://" 的文本行,然后再使用 sed 命令将这些文本行中的域名提取出来。具体命令如下: grep -E "http(s)?://" logfile.txt | sed -E 's/.*(http(s)?:\/\/)?([^\/]+)\/.*/\3/' 上述命令中的 grep -E "http(s)?://" 用于筛选出包含 "http://" 或 "https://" 的文本行,然后通过管道将结果传递给 sed 命令sed -E 's/.*(http(s)?:\/\/)?([^\/]+)\/.*/\3/' 用于提取出域名信息,并将结果打印出来。 总的来说,sedgrep 的组合使得我们在文本处理和匹配过程中能够更加灵活和高效,能够满足各种不同场景下的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值