【发布时间】:2017-06-20 22:40:13
【问题描述】:
您好,我有一个不断快速更新的大文件。它存储了大量的 FIX-ORDER 消息。每个订单都包含在以单词“FIXES”开头并以单词“Committed”结尾的部分中。在每个订单部分中,修复消息位于第一部分,其他消息位于第二部分。 请参阅下面的输入示例和输出示例。
简而言之,我喜欢 grep 文件并逐行打印最后一个订单部分 并确保修复消息也打印在单独的行上。请参阅下面的第二部分,这是我需要的最终输出。
如果你能帮忙,请告诉我
订单部分的起始文本(我们称之为 orderA)
FIXES LIMIT CHECK ON:
修复消息部分
FIXES LIMIT CHECK ON: 8=FIX.4.2;9=0;35=D;10=100; (Client.123.600)
修复消息部分 + 其余日志消息,直到我们到达单词 Commit 请注意每一行都以右括号结束
FIXES LIMIT CHECK ON: 8=FIX.4.2;9=0;35=D;10=100; (Client.123.600)
1234 abcdefg EFG/HIT [12355] debug JUN 20 17:25:34 Matched (Match.c.t)
1235 cdghhhh ggg/HIT [19889] INFO JUN 20 17:25:34 Matched (Found.c.t)
1236 abwwwfg EFG/HIT [12885] debug JUN 20 17:25:34 Matched (Match.c.t)
Committed
如果可能的话,我喜欢只使用一个命令行来做些什么;输出有两部分。请在回答之前阅读这两部分:
第一部分)我喜欢使用一个命令来从以“FIXES LIMIT CHECK ON:”开头的行到“提交”一词的每个订单部分,所以基本上
FIXES LIMIT CHECK ON: 8=FIX.4.2;9=0;35=D;10=100; (Client.123.600)
1234 abcdefg EFG/HIT [12355] debug JUN 20 17:25:34 Matched (Match.c.t)
1235 cdghhhh ggg/HIT [19889] INFO JUN 20 17:25:34 Matched (Found.c.t)
1234 abcdefg EFG/HIT [12355] debug JUN 20 17:25:34 Matched (Match.c.t)
Committed
第二部分)
I like to print each Fix message that is divided by ";" in a new line
please note that the last entry of the fix message is (Client.123.600)
so my final out put should look like this
FIXES LIMIT CHECK ON:
8=FIX.4.2;
9=0;35=D;
10=100;
(Client.123.600)
1234 abcdefg EFG/HIT [12355] debug JUN 20 17:25:34 Matched (Match.c.t)
1235 cdghhhh ggg/HIT [19889] INFO JUN 20 17:25:34 Matched (Found.c.t)
1234 abcdefg EFG/HIT [12355] debug JUN 20 17:25:34 Matched (Match.c.t)
Committed
【问题讨论】:
-
您在问题中有很多
orders却没有显示出完整的输入样本,而且您自己的努力也没有解决它 -
祝你有美好的一天!!