1

csv で区切られた記録を持つログ ファイルを解析しようとしています。すべての行は 8 つのフィールドに分割されます。一部の行では、最後のフィールド Field8 に余分なコンマが含まれていますが、これは無視する必要があります (区切るべきではありません)。問題の行は次のようになります (Field8 に注意):

Test, Field2,5731960,Field4,,4,32,Field8 MyOp ( abc,def  )

ログ形式の変更を求めることはできません。pos 8 から pos 100 までを pos 8 に入れる方法はありますか? 私は春のDSLを好みます。カスタムパーサーが既に存在する場合は避けたいです。

@CsvRecord(separator = ",")
public class SysActivity{
    ....
    @DataField(pos = 8, required = true) // is there a way I can mention pos8 till end of line
    protected String logMessage;
}

キャメル 10.0 の使用

4

2 に答える 2

1

いいえ、これは不可能です。しかし、過去に他の何人かが質問したと思う有効なユースケースだと思います。

今後これを改善するためにチケットを記録しました https://issues.apache.org/jira/browse/CAMEL-6381

于 2013-05-20T06:22:26.807 に答える
0

camel では、メッセージ本文を分割するためにスプリッターを使用できます。この場合、スプリッターのドキュメントで説明されているように、スプリッターで正規表現を使用できます。

于 2013-05-19T20:48:24.087 に答える