スペース区切りなしで修正ログのデータを解析するソリューションに役立つ人はいますか?このファイルの内容は、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
「一つまたは二つ」を達成することは不可能です。 1〜2文字だけ入力してください。
sed -e 's|\(.\)=|\n\1=|g' <e
sed -e 's|\(..\)=|\n\1=|g' <e
キーの長さを決定するパターンをテキストで見つけたら、パズルをもう一度見てみましょう。しかし今…
キーと値のペアの間に区切り文字がないと確信していますか?試してみてくださいhexdump
- 印刷できない文字を見つけるのに役立ちます。