부분적인 CSV 파일의 예가 있습니다(필드 3개만 포함).
"
우리의 목표는 큰따옴표 안의 모든 문자를 제거하는 것입니다.
ssl-server,"ssl.server.truststore.type","jks"
tez-env,"enable_heap_"\n"dump","false"
tez-env,"heap_dump_location"\n"port","/tmp"
tez-env,"tez_user","tez"
예상 출력:
ssl-server,ssl.server.truststore.type,jks
tez-env,enable_heap_"\n"dump,false
tez-env,heap_dump_location"\n"port,/tmp
tez-env,tez_user,tez
답변1
csv 작업에는 전용 소프트웨어를 사용하는 것이 좋습니다. sed
큰따옴표 안에 쉼표가 없으면 간단한 방법으로 상황을 해결할 수 있습니다.
sed 's/^"//;s/",/,/g;s/,"/,/g;s/"$//' file
답변2
짧은sed해결책:
sed 's/^"\|"$//g; s/"*,"*/,/g;' file
또는앗방법:
awk -F, '{ for(i=1;i<=NF;i++) gsub(/^"|"$/,"",$i) }1' OFS=',' file
출력(두 방법 모두):
ssl-server,ssl.server.truststore.type,jks
tez-env,enable_heap_"\n"dump,false
tez-env,heap_dump_location"\n"port,/tmp
tez-env,tez_user,tez