使用sed从日志文件中提取文本

时间:2013-08-20 17:31:13

标签: unix sed grep

我正在开发一个脚本,用于从.log文件中提取备份的数据量并通过电子邮件发送给我。我相信“sed”功能可以做到这一点。以下命令显示了我想要查看的内容。特别是,如何提取文本“备份6.776 GB”?如果数字变化并变为TB,则“sed”应该仍然有效。可以“sed”这样做吗?

命令:

grep "Backed-up" Daily_Backups-Exchange-1376798400228#0-3018-Exchange_VSS_Writer_2007.log

输出:

2013-08-18 00:12:44 avtar Info <6083>: Backed-up 6.776 GB in 0.03 minutes: 12,301 GB/hour (0 files/hour)

2 个答案:

答案 0 :(得分:0)

sed行应该有效:

grep "Backed-up" filename.log |sed -e 's/^.* \(Backed-up [0-9\.]* [MGT]B\) in .*$/\1/'

匹配MB,GB和TB。

答案 1 :(得分:0)

如果您的输入格式在列数方面是健壮的:

awk '$6 == "Backed-up" { print $6, $7, $8 }' input-file

应该可以正常工作。