
CSVファイルがあります。
入力する。
India|Andhra|asd,ged,ijn|telangana|41657|hgjd,dfef,edf|dfd
出力
India,Andhra,"asd,ged,ijn",telangana,41657,"hgjd,dfef,edf",dfd
答え1
csvformat
以下で使用csvkit:
$ csvformat -d '|' file.csv
India,Andhra,"asd,ged,ijn",telangana,41657,"hgjd,dfef,edf",dfd
csvkitツールボックスのツールはCSVを認識します(通常はコマンドラインからの変更とクエリのためのCSVパーサーです)。
ここでは、形式が変更された入力ファイルを使用し、csvformat
入力のフィールド区切り記号がパイプ記号であることを指定します-d '|'
。デフォルトでは、出力はカンマをフィールド区切り文字として使用し、ツールは必要に応じて内容をエスケープして引用します。
答え2
Rubyがインストールされている場合:
ruby -rcsv -e '
rdr = CSV.new(File.new(ARGV.shift), col_sep: "|")
wtr = CSV.new($stdout)
rdr.each {|row| wtr << row}
' file.csv
India,Andhra,"asd,ged,ijn",telangana,41657,"hgjd,dfef,edf",dfd