在日志中匹配关键字,如何得到关键字所在行的其他字段信息

linux6715 2011-10-25 09:58:45
日志文件格式说明:以下代表一条交易记录
2012-10-04 17:19:46.246 1052912 : From [TFCPADWA] TO [test56] 00006472
应答 3000105 1310000005 1000000056 99292064 2011-06-11 17:20:32 100,000.00
RCCI0000 OK

中心日期 时间 From 发起服务名 TO 接受服务名 业务参考流水号
请求/应答 交易代码 发起行号 接受行号 交易流水号 应答日期 时间 发生额
应答码 附言

以下为日志文件具体内容片段:(加粗体,斜体,下划线的就是关键字)

> 2012-10-22 14:59:00.386 1073332 : From [TFCPMIS] TO [JiangSu] 00024361
回执 9900503 1000000000 1320000006 64035144 2011-07-03 15:00:37 RCCO1027
发起行行号非法

> 2012-10-22 15:07:14.554 1073332 : From [TFCPADWA] TO [test37] 00004575
回执 3000507 1000000000 1000000037 96033291 2011-07-03 15:07:13 RCCO1107
3000002交易,中心等待接收方应答发生交易超时

> 2012-10-22 15:12:31.557 1073332 : From [TFCPMIS] TO [JiangSu] 00024364
回执 9900503 1000000000 1320000006 64035146 2011-07-03 15:14:08 RCCO1027
发起行行号非法

> 2012-10-22 15:17:36.344 1073332 : From [TFCPADWA] TO [ChongQing] 10010006
回执 3000507 1000000000 1500000006 14035632 2011-07-03 15:14:55 RCCO2005
发起行交易日期非法

> 2012-10-22 15:19:10.329 1073332 : From [TFCPADWA] TO [ChongQing] 10010007
回执 3000507 1000000000 1500000006 21032621 2011-07-03 15:16:29 RCCO2005
发起行交易日期非法

> 2012-10-22 15:20:41.123 1073332 : From [TFCPMIS] TO [JiangSu] 00024365
回执 9900503 1000000000 1320000006 64035148 2011-07-03 15:22:18 RCCO1027
发起行行号非法

> 2012-10-22 15:38:50.230 1073332 : From [TFCPADWA] TO [test37] 00004576
回执 3000507 1000000000 1000000037 08554248 2011-07-03 15:38:50 RCCO1107
3000002交易,中心等待接收方应答发生交易超时



本人想得到的信息:
例如:关键字RCCO1027,RCCO1107
在日志中匹配到关键字RCCO1027,RCCO1107后,分别获得各个关键字所在行的信息 放到相对应的结构体变量中:
以RCCO1027为例:
struct transaction {
char date[20];
char time[20];
char fromser[20];
char toser[20];
char frombank[20];
char tobank[20];
};

date:2012-10-22
time:15:20:41.123
fromser:TFCPMIS
toser:JiangSu
frombank:1000000000
tobank:1320000006

RCCO1107

date:2012-10-22
tiem:15:38:50.230
fromser:TFCPADWA
toser:test37
frombank:1000000000
tobank:1000000037
...全文
233 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq120848369 2011-10-25
  • 打赏
  • 举报
回复
> 2012-10-22 15:38:50.230 1073332 : From [TFCPADWA] TO [test37] 00004576
回执 3000507 1000000000 1000000037 08554248 2011-07-03 15:38:50 RCCO1107
3000002交易,中心等待接收方应答发生交易超时

问题方便做的前提是这是一整条piece,中间没有\n 。 那么用C语言fgets一行,根据空格去拆成各个part即可。

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧