二重引用符で囲まれたフィールドを持つ巨大な(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
「内部」編集を実行できないため、出力を新しい名前にリダイレクトする必要があります。