CSVファイルから二重引用符をすべて削除するにはどうすればよいですか?

CSVファイルから二重引用符をすべて削除するにはどうすればよいですか?

二重引用符で囲まれたフィールドを持つ巨大な(GiBの半分程度、プレーンテキストエディタを使用することは不可能です)CSVファイルはありますが、引用符を持たないファイルが"abc","def"必要です(これはファイルの一貫性を損なわないと確信しています。)内では内部的には使用されません。)

(空白なし)すべての引用符を削除するにはどうすればよいですか?

答え1

tr次のことができます。

tr -d \" < infile > outfile

以下も使用できますsed

sed 's/"//g' < infile > outfile

答え2

その他のバージョンsed注文する:

sed -i s/\"//g file.txt
  • sed Sトレメ編集するイトール

    • -i n-place (ファイルを所定の位置で編集)
    • sこれS代替コマンド
    • /replacement_from_reg_exp/replacement_to_text/氏名
    • \"バックスラッシュが前にある引用符((replacement_from_reg_exp)
    • スラッシュ区切り文字の間の空の文字列(テキストに置き換える)
    • g Gグローバル(1行のすべての項目を置き換えるために使用されます)
  • file.txtファイル名

答え3

CSVをサポートするライブラリを使用してデータを読み取る場合は、二重引用符を削除する必要はありません。この回答の残りの部分では、後でデータをより簡単に解析する方法を使用する場合は、通常のCSVファイルから不要な二重引用符を削除する方法を示します。

ミラーmlr)はCSVデータを読み込み、それを再出力するために使用できます。

mlr --csv cat file

-I「内部」編集にはwithを使用します。)

デフォルトでは、Millerは、カンマ、引用符、改行文字を含むフィールドなど、引用符が必要なフィールドのみを引用します。

同じ方法csvformatからcsvkit同様に、実際に引用する必要があるフィールドのみがデフォルトで参照されます。

csvformat file

ユーティリティはcsvformat「内部」編集を実行できないため、出力を新しい名前にリダイレクトする必要があります。

関連情報