「一意の」区切り文字を使用してデータベースにインポートするデータファイルがいくつかあります。
フィールド区切り文字 (FS): SOH (ASCII 文字 1)
レコード セパレータ (RS) : STX (ASCII 文字 2) +'\n'</p>
COPY コマンドを使用してファイルを Postgres にインポートしたいのですが、カスタム フィールド区切り文字を指定できますが、レコード区切り文字を処理できません。
データから \002 を取り除くこともできません。なぜなら、フィールドの 1 つに改行がある場合 (および存在する場合)、COPY が誤って新しいレコードであると見なしてしまいますが、実際には新しいレコードではないからです。 .
注意すべき重要な点の 1 つは、フィールド内の改行が維持されることは重要ではありません。改行がスペースに変換されるだけであれば問題ありません。
これを念頭に置いて、「sed」のようなものを使用して改行をスペースに変換し、次に \002 を改行に変換することを考えていました。ただし、sed は行ベースのツールであるため、各行の末尾に改行が表示されないようで、検索/置換を実行できません。
仕事をすることができる他のUNIXコマンドラインツールはありますか?
編集:私が本当に求めているのは、ファイルを行に分割せずに「バイナリ」として処理(検索/置換を実行)できるUNIXユーティリティだと思います