ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • sed로 " 안의 , 제거하기
    프로그래밍/DB 2020. 1. 8. 15:07
    728x90
    반응형




    load data infile로 csv 파일 내용을 mysql 테이블로 import했는데 

    warning 개수가 넘 많다 -_-;; 






    LOAD DATA INFILE '/var/lib/mysql-files/sample.csv' INTO TABLE sample

    FIELDS TERMINATED BY ','

    IGNORE 1 LINES;


    Query OK, 12147957 rows affected, 65535 warnings (1 min 44.92 sec)





    show warnings; 로 경고 메세지를 확인하니 아래와 같이 테이블의 input columns 개수보다 

    칼럼 개수가 많다고 한다. 





     Warning | 1265 | Data truncated for column '전용면적' at row 3758                             |

    | Warning | 1262 | Row 3758 was truncated; it contained more data than there were input columns |

    | Warning | 1265 | Data truncated for column '전용면적' at row 3759                             |

    | Warning | 1262 | Row 3759 was truncated; it contained more data than there were input columns |

    | Warning | 1265 | Data truncated for column '전용면적' at row 3760                             |

    | Warning | 1262 | Row 3760 was truncated; it contained more data than there were input columns |

    | Warning | 1265 | Data truncated for column '전용면적' at row 3761                             |





    귀찮지만 데이터 확인 ㄱㄱ

    , 를 기준으로 필드를 분리하는데 건물 이름에 , 가 들어가 있어서 필드 개수가 더 많아진 것임 ㅇㅇ




    2016,01,4211011200,강원 춘천 춘천로64번길 21-0,강원,춘천,효자,,0,688,6,,"엘피스빌(가,다)(구한전사택)",60.69,4,48000000

    2016,01,4211011200,강원 춘천 춘천로64번길 21-0,강원,춘천,효자,,0,688,6,,"엘피스빌(가,다)(구한전사택)",60.69,3,49000000

    2016,01,4211011200,강원 춘천 춘천로64번길 21-0,강원,춘천,효자,,0,688,6,,"엘피스빌(가,다)(구한전사택)",60.69,4,48000000




    sed 로 " 안의 , 를 제거하였다. 




    sed -e 's/\(".*\),\(.*"\)/\1 \2/g' sample.csv &> sample2.csv



    -e 옵션은 정규식 옵션이고 

    's/A/B/g' 는 A 패턴을 B 패턴으로 바꾸겠다는 것이다. 

    ()는 정규식 서브 패턴으로  A패턴에서 나오는 순서대로 B패턴에서 \1, \2 , 로 표시한다. 

    참고로 \은 escape character이다.



    위 식이 의미하는 것은 ,를 기준으로 앞의 "를 서브패턴1로 보고 

    뒤 "를 서브패턴2으로 보아서 

    최종적으로 " 아파트이름(문자열, 문자열) " 에서 ,를 제거하는 것이다. 


    아래는 아래 정규식을 적용한 결과 파일이다. 





    2016,01,4211011200,강원 춘천 춘천로64번길 21-0,강원,춘천,효자,,0,688,6,,"엘피스빌(가 다)(구한전사택)",51.81,1,40000000

    2016,01,4211011200,강원 춘천 춘천로64번길 21-0,강원,춘천,효자,,0,688,6,,"엘피스빌(가 다)(구한전사택)",77.11,3,62000000

    2016,01,4211011200,강원 춘천 춘천로64번길 21-0,강원,춘천,효자,,0,688,6,,"엘피스빌(가 다)(구한전사택)",77.11,4,60000000




    이제 정상적으로 경고 없이 파일 내용이 테이블로 로드되었다. 






     



    728x90
    반응형

    댓글 1

Designed by Tistory.