Bro IDSによって生成されたURLでいっぱいのログファイルがあります。
BroがASCII以外の文字を含むURLをログに記録すると、\ xYYが挿入されます。YYは16進数の文字コードです。また、一部のURLには「\ x」が含まれています。
COPY
または\copy
コマンドで使用できる設定またはフラグはありますか?postgresがこれらの文字列シーケンスを解釈して、テキストフィールドにそのまま配置するのを防ぐことができますか?
バックスラッシュ\
は、COPY
の(デフォルト)テキスト形式のデフォルトエスケープ文字です。あなたが記述したフォーマットは( ここにマニュアルを引用 )として認識されます
バックスラッシュシーケンスは
COPY FROM
によって認識されます
...
\xdigits |バックスラッシュxの後に1桁または2桁の16進数が続き、その数値コードの文字を指定します
..意図したとおりであるようです。
この影響を回避するには、代わりに CSV形式 を使用できます。バックスラッシュは特別な意味を持ちません。
COPY tbl FROM '/path/to/file/log.sql' (FORMAT csv);
その他の違いについては、必ずマニュアルをお読みください。
または、ファイル内のすべての\
を\\
でsed
スクリプトなどに置き換えることもできます。
上記で問題が解決しない場合は、以下を指定してください:
COPY
を使用するテーブルの定義COPY
呼び出し