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

csv の二重引用符を削除する方法

最も簡単な方法:

tr -d '"' <a.csv >b.csv

gsub() を使用 グローバル置換の関数

$ awk '{gsub(/\"/,"")};1' input.csv                    
1,2,3,4,9
1,2,3,6,24
1,2,6,8,28
1,2,4,6,30

出力を新しいファイルに送信するには、> を使用します シェル演算子:

awk '{gsub(/\"/,"")};1' input.csv > output.csv

必須ではありませんが、配列への分割アプローチも使用できますが、そのまま使用できます。

$ awk '{split($0,a,"\""); print a[2]}' input.cvs       
1,2,3,4,9
1,2,3,6,24
1,2,6,8,28
1,2,4,6,30

この特定の質問では、一般的なパターンは引用符が行の最初と最後にあることに注意してください。つまり、フィールド 1 が null、フィールド 2 が 1,2,3,4 の場合、フィールド セパレータとしても扱うことができます。 、フィールド 3 も null です。したがって、次のことができます:

awk -F '\"' '{print $2}' input.csv

また、行全体の部分文字列を取り出すこともできます:

awk '{print substr($0,2,length($0)-2)}' quoted.csv

最初と最後の文字の削除について言えば、sed などの他のツールを使用した場合について、stackoverflow に全体の投稿があります。 および POSIX シェル。


sed を使用した別のソリューション :

sed -e 's/"//g' a.csv > b.csv

Linux
  1. チルダ(〜)が二重引用符の内側に展開されないのはなぜですか?

  2. .bash_historyの重複を削除するには、順序を保持しますか?

  3. Utf-8ファイルからBOMを削除する方法は?

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

  2. テレグラムを削除する方法は?

  3. cPanel キャッシュ マネージャーを削除する方法

  1. コマンドラインを使用してLinuxでユーザーを削除する方法

  2. シェルで引用をエスケープする方法は?

  3. メールアイコンインジケータアプレットを削除する方法は?