我有一个以下简单的脚本,用于从 irc 日志中解析出日期(由 irssi 创建)
#!/bin/bash
query=$1
grep -n $query logfile > matches.log
grep -n "Day changed" logfile >> matches.log
cat matches.log | sort -n
它产生如下输出:
--- Day changed Tue Jul 03 2012
--- Day changed Wed Jul 04 2012
--- Day changed Thu Jul 05 2012
16:54 <@Hamatti> who let the dogs out
--- Day changed Fri Jul 06 2012
--- Day changed Sat Jul 07 2012
--- Day changed Sun Jul 08 2012
12:11 <@Hamatti> dogs are fun
但由于我只对找出实际比赛的日期感兴趣,所以我想过滤掉所有这些
--- Day changed XXX XXX dd dddd
下一行没有时间戳的行。所以这个例子应该输出
--- Day changed Thu Jul 05 2012
16:54 <@Hamatti> who let the dogs out
--- Day changed Sun Jul 08 2012
12:11 <@Hamatti> dogs are fun
摆脱所有无用的虚假信息。
编辑。在 T. Zelieke 的回答之后,我意识到我可以使它更像一个单行,所以我现在使用以下内容来保存日志文件免于被迭代两次。
query=$1
egrep "$query|Day changed" logfile |grep -B1 "^[^-]" |sed '/^--$/d'