csv 파일 열에 존재하지 않는 두 번째 첨부 문자열을 추가해야 합니다.

csv 파일 열에 존재하지 않는 두 번째 첨부 문자열을 추가해야 합니다.

csv 열에 두 번째 큰따옴표가 없습니다. 아래에서 아이디어/쉘 스크립트를 찾고 있습니다.

  1. 후행 큰따옴표가 누락된 특정 열을 찾습니다.
  2. 열 끝에 누락된 큰따옴표를 추가하세요.

견본:

79,A138270382563593,QMGXA1752256,Open Up,"Barry Devorzon;
3,A263163706496582,QMGXA1727673,A Different Time (Full),"BruceChianese, VTAM;

답변1

한 줄에 최대 하나만 있다고 가정 하고 다음 또는 앞에 "닫는 따옴표를 삽입해야 합니다 (그리고 각 줄은 항상 로 끝난다고 가정합니다 ).,;;

sed 's/"[^,;]*/&"/ file.csv

산출:

79,A138270382563593,QMGXA1752256,Open Up,"Barry Devorzon";
3,A263163706496582,QMGXA1727673,A Different Time (Full),"BruceChianese", VTAM;

답변2

"아직 다음으로 끝나지 않은 열(쉼표로 구분)에 a를 추가합니다 ".


그리고 sed:

sed 's/\(,"[^",;]*\)\([,;]\)/\1"\2/' file.csv

그리고 awk:

awk -F, -v OFS=, '{
    for ( i = 1; i <= NF; i++ ) 
        if ($i ~ /^"/ && $i !~ /"$/) 
            $i = $i ~ /;$/ ? substr($i, 0, length($i)-1) "\";" : $i "\""
}1' file.csv

관련 정보