如何解析没有行分隔符的修复日志

如何解析没有行分隔符的修复日志

有人可以帮助解决方案来解析修复日志中没有空格行分隔符的数据吗?该文件的内容包含在名为 e 的文件中。

8=FIX.4.49=025535=R49=UAT_RFQ56=UAT34=283052=20221101-20:16:01.304115=CPP131=booboo=155=EUR/USD167=FOR38=10000000015=EUR63=SP1=CPPIAGT453=1448=yogi447=D452=378=179=NT6R80=100000000467=07152=110=061

+++

我认为可能的唯一常见模式是“=”符号。因此,理想情况下,如果遇到 '=' 符号,则取等号前 2 或 3 个位置的值并放在换行符上。

理想情况下,输出如下所示:

8=FIX.4.4
9=0255
35=R
49=UAT_RFQ
56=UAT
34=2833
52=20221101-20:16:42.239
115=CPP
131=booboo
146=1
55=EUR/USD
167=FOR
38=100000000
15=EUR
63=SP
1=CPPIAGT
453=1
448=yogi
447=D
452=3
78=1
79=NT6R
80=100000000
467=07
152=
110=073

但如果能用一个空格分开我会很高兴。


8=FIX.4.4 9=0255 35=R 49=UAT_RFQ 56=UAT 34=2830 52=20221101-20:16:01.304 115=CPP 131=booboo=1 55=EUR/USD 167=FOR 38=100000000 15=EUR 63=SP 1=CPPIAGT 453=1 448=yogi 447=D 452=3 78=1 79=NT6R 80=100000000 467=07 152= 110=061

我尝试过简单的方法: cat e | sed 's/=/\t/g'。这导致

8       FIX.4.49        025535  R49     UAT_RFQ56       UAT34   283052  20221101-20:16:01.304115        CPP131  booboo  155     EUR/USD167      FOR38   10000000015     EUR63   SP1     CPPIAGT453      1448    yogi447 D452    378     179       NT6R80  100000000467    07152   110     061

这并不代表我正在寻找的解决方案。如果您能给我指出正确的方向或提供一些建议。

非常感谢您的帮助。

答案1

不可能做到“一二”。仅一个或两个字符:

sed -e 's|\(.\)=|\n\1=|g' <e
sed -e 's|\(..\)=|\n\1=|g' <e

如果你设法从文本中找到一个模式来决定密钥有多长——那么我们就可以重新审视这个难题。但现在...

您绝对确定键=值对之间没有分隔符吗?尝试使用hexdump- 它可以帮助您注意到不可打印的字符。

相关内容