Linux - ""の間の特殊文字を無視する方法は?

Linux -

私のファイル:(1本のサンプルライン)

MMP,"01_janitorial,02_cleaning_tools",1,,CUBIC_INCH,"(14) tray capacity, 6" upright with 3" spacing, mounts on 48"W x 24"D, taupe epoxy, fits MetroMax i
& MetroMax Q shelf, NSF",CLEANING

これを7つの列を持つPostgresqlテーブルに読み込む必要があります。

熱分析:

  1. MMP
  2. "01_janitorial,02_cleaning_tools"
  3. 1
  4. CUBIC_INCH
  5. "(14) tray capacity, 6" upright with 3" spacing, mounts on 48"W x 1. 24"D, taupe epoxy, fits MetroMax i & MetroMax Q shelf, NSF"
  6. CLEANING

ファイルはデフォルトでコンマで区切られていますが、テキストが二重引用符内にある場合は、カンマ、キャリッジリターン(存在する場合)、二重引用符を無視する必要があります。 2列と6列に示す通りです。

postgresqlコピーコマンドを使用してロードするか、awk、perl、sed、またはその他のコマンドを使用してファイルを変換してロードできます。

ベストアンサー1

言ったように、ファイルが誤って生成されました。ただし、,区切り文字だけでなく、を使用して",問題を解決することもできます,"。もちろん、カスタムスクリプトが必要であり、6番目のフィールドで同様の状況が発生しないという保証はありません。

または、6番目のフィールドが唯一の破損したフィールドであると仮定し、最初の5つのフィールドを削除してから、結果から最後のフィールドとカンマを削除することもできます。残りはゲーム6コンテンツです。

おすすめ記事