GNU/Linux >> Linux の 問題 >  >> Linux

ファイル内の引用間のデータを置き換えますか?

区切り文字をコンマとして持つデータファイルから「」の間のデータを抽出したい。

サンプル入力ファイル:

,7/30/2019,7/31/2019,Wed,8/1/2019,FH/FN 30yr & 20yr TBA & Spec ,"10,000",8/13/2019,

期待されるo/p:

,7/30/2019,7/31/2019,Wed,8/1/2019,FH/FN 30yr & 20yr TBA & Spec ,"10000",8/13/2019,

承認された回答:

これが適切にフォーマットされたCSVであると仮定すると(この点でサンプルデータは問題ないように見えます)、csvformatを使用できます。 csvkitから フィールド区切り文字を、@など、データに存在しない他の文字に一時的に変更します。 、すべてのカンマを削除し、フィールド区切り文字をデフォルトに戻します:

$ csvformat -D '@' file.csv | tr -d , | csvformat -d '@'
,7/30/2019,7/31/2019,Wed,8/1/2019,FH/FN 30yr & 20yr TBA & Spec ,10000,8/13/2019,

変更したフィールドの前後に引用符はありませんが、これは不要になったためです。

明らかに、「すべてのカンマを削除」すると、実際には削除したくないカンマが削除される可能性があるため、もう少し選択して、7番目のフィールドのカンマのみを削除できます。

$ csvformat -D '@' file.csv | awk -F '@' 'BEGIN { OFS=FS } { gsub(",", "", $7); print }' | csvformat -d '@'
,7/30/2019,7/31/2019,Wed,8/1/2019,FH/FN 30yr & 20yr TBA & Spec ,10000,8/13/2019,

Linux
  1. ファイル転送プロトコル:FTPとSFTP

  2. ファイル内の文字列を置き換える方法は?

  3. 改行をNulに置き換えますか?

  1. Rm後にXfsデータを回復する方法は?

  2. カンマ区切りファイルでのみ引用符間のカンマを削除しますか?

  3. ファイルからテキスト読み取りデータを作成しますか?

  1. ファイルシステムにデータを隠す?

  2. データファイルで一意の値を見つける

  3. n バイトのデータ x をファイルにコピー