csv 열에 두 번째 큰따옴표가 없습니다. 아래에서 아이디어/쉘 스크립트를 찾고 있습니다.
- 후행 큰따옴표가 누락된 특정 열을 찾습니다.
- 열 끝에 누락된 큰따옴표를 추가하세요.
견본:
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