2014-03-05 4 views
0

큰로드 CSV 파일을 "" 큰 따옴표로 묶은 | 파이프로 구분 된 파일 인 파일을 MySQL로드 데이터 infile을 사용하여 가져 오려고합니다. 대부분의 필드는 큰 따옴표 안에 큰 따옴표와 텍스트 데이터이며, 나는 같은 열에있는 모든 데이터를 얻을 수 있으므로 따옴표 포함 할 경우에만 나는 여분의 따옴표를 제거해야합니다큰 따옴표를 큰 따옴표로 묶지 않음

예 :

|"George Kastrioti "Skanderbeg""|""|""|"1926"| 

원하는 출력을 :

|"George Kastrioti Skanderbeg"|"|"|"1926"| 

sed으로 시도했지만 실제로 성공하지 못 했습니까?

+4

이것은 유효한 CSV가 아니므로 소스를 수정하는 것이 더 바람직하지 않습니까? –

답변

0
sed ': again 
s/\(|"[^"|]*\)"\([^"|]*"\)/\1\2/g 
t again 
s/""/"/g' YourFile 

하지만 난 |""||"| 그래서이 버전 (단지 아이디어 당신의 진짜 필요 만 빈 값에 대한 샘플 상태 1 따옴표 모른다) 더해야

을보다 논리가 상상
sed ': again 
s/\(|"[^"|]*\)"\([^"|]*"\)/\1\2/g 
t again' YourFile 
+0

좋아요! 그것은 보인다 작품 – user3384179

관련 문제