您好我有一个日志文件trace.log,其中打印时间戳,线程名称和事务处理方法和事务ID如下。shell脚本将选定的文本写入单行
2014-01-23 15:50:41,724 [catalina-exec-35] INFO TRANSACTION getConnection REQUEST, ID=1308::
2014-01-23 15:50:41,725 [catalina-exec-33] INFO TRANSACTION getConnection REQUEST, ID=1304::
2014-01-23 15:50:41,727 [catalina-exec-10] INFO TRANSACTION getConnection REQUEST, ID=1298::
2014-01-23 15:50:41,727 [catalina-exec-24] INFO TRANSACTION getConnection REQUEST, ID=1307::
2014-01-23 15:50:41,727 [catalina-exec-12] INFO TRANSACTION getConnection DONE, ID=1305::
2014-01-23 15:50:41,733 [catalina-exec-10] INFO TRANSACTION getConnection DONE, ID=1298::
2014-01-23 15:50:41,734 [catalina-exec-26] INFO TRANSACTION getConnection REQUEST, ID=1313::
2014-01-23 15:50:41,734 [catalina-exec-26] INFO TRANSACTION getConnection DONE, ID=1313::
2014-01-23 15:50:41,738 [catalina-exec-39] INFO TRANSACTION getConnection REQUEST, ID=1311::
2014-01-23 15:50:41,733 [catalina-exec-35] INFO TRANSACTION getConnection DONE, ID=1308::
2014-01-23 15:50:41,738 [catalina-exec-27] INFO TRANSACTION getConnection REQUEST, ID=1309::
2014-01-23 15:50:41,737 [catalina-exec-22] INFO TRANSACTION getConnection REQUEST, ID=1310::
2014-01-23 15:50:41,743 [catalina-exec-30] INFO TRANSACTION getConnection REQUEST, ID=1315::
2014-01-23 15:50:41,744 [catalina-exec-39] INFO TRANSACTION getConnection DONE, ID=1311::
2014-01-23 15:50:41,747 [catalina-exec-2] INFO TRANSACTION getConnection REQUEST, ID=1318::
我想grep和打印的getConnection REQUEST和的getConnection在一行DONE用于perticular ID到一个文件的时间戳。
我有一个书面的shell脚本,可以在多行中打印时间戳,如下所示。 这里是我的shell脚本
for i in {1..800}
do
echo "Welcome $i times"
echo "ID=$i, getConnection " >> time.log
grep ID=$i: trace.log | grep getConnection | cut -d'[' -s -f1 >> time.log
echo " " >> time.log
done
输出如下图所示
ID=791, getConnection
2014-01-23 15:50:16,703
2014-01-23 15:50:16,706
ID=792, getConnection
2014-01-23 15:50:16,704
2014-01-23 15:50:16,704
ID=793, getConnection
2014-01-23 15:50:16,704
2014-01-23 15:50:16,709
ID=794, getConnection
2014-01-23 15:50:16,708
2014-01-23 15:50:16,712
我怎样才能做到这一点?请帮助
我需要如下图所示
ID=792, getConnection 2014-01-23 15:50:16,703 2014-01-23 15:50:16,706
ID=792, getConnection 2014-01-23 15:50:16,704 2014-01-23 15:50:16,704
ID=793, getConnection 2014-01-23 15:50:16,704 2014-01-23 15:50:16,709
ID=794, getConnection 2014-01-23 15:50:16,708 2014-01-23 15:50:16,712
循环槽全部数量只是为了测试如果存在则不需要。您可以将所有数据存储在数组中并将其排序。 – Jotne