最も簡単な方法:
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