파이프 구분 기호와 쉼표가 있는 일부 필드는 큰따옴표로 묶어야 하며 단일 필드로 처리되어야 합니다.

파이프 구분 기호와 쉼표가 있는 일부 필드는 큰따옴표로 묶어야 하며 단일 필드로 처리되어야 합니다.

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

관련 정보