MAC(Unix)에 일관되지 않은 열이 있는 150개가 넘는 CSV 파일이 있습니다. 예를 들면 다음과 같습니다.
플레이트 A
ID | 서양 평지 | 이동하는 | 이메일 | 보조 휴대폰 | 이름 |
---|---|---|---|---|---|
V | V | V | V | V | V |
V | V | V | V | V | V |
B 필름
ID | 서양 평지 | 서양 평지 | 서양 평지 | 서양 평지 | 서양 평지 |
---|---|---|---|---|---|
V | V | V | V | V | V |
V | V | V | V | V | V |
표 C
우울증 | 이메일 | 이동하는 | 이름 | 서양 평지 | 우울증 |
---|---|---|---|---|---|
V | V | V | V | V | V |
V | V | V | V | V | V |
양식 D
ID | 우울증 | 우울증 | 우울증 | 이동하는 | 우울증 |
---|---|---|---|---|---|
V | V | V | V | V | V |
V | V | V | V | V | V |
위의 각 워크시트에 다음 열이 있는 경우 새 워크시트를 파생해야 합니다.
아이디, 이름, 이메일, 휴대폰, SECONDARY_MOBILE
그런 다음 CAT를 사용하여 새로 내보낸 워크시트를 하나의 워크시트로 병합하겠습니다. 이렇게 하면 Oracle DB에 데이터를 업로드할 수 있습니다.
따라서 SHEET D의 경우 파생 테이블은 다음과 같아야 합니다.
ID | 이름 | 이메일 | 이동하는 | SECONDARY_MOBILE |
---|---|---|---|---|
V | ||||
V |
이것이 분명하기를 바랍니다. 미리 감사드립니다.
답변1
IETF RFC에도 불구하고 CSV는 단지 하나의 형식이 아닌 일련의 형식입니다. 따라서 원하는 작업을 수행한다고 주장하는 항목을 찾더라도 해당 파일 형식이 사용하는 CSV의 특정 변형을 이해하지 못할 수도 있습니다. UnixODBC에는 CSV 파서가 없습니다. Python과 PHP 모두 매우 강력하고 유연한 파서를 갖추고 있습니다. 나는 후자에 더 익숙합니다. 필요한 코드를 작성하는 데 약 30분 정도 걸릴 것으로 예상됩니다. OTOH 데이터를 있는 그대로 Oracle로 가져온 다음 구조를 정규화하는 데는 많은 작업이 필요할 것입니다.
답변2
사용밀러이 3개 파일로 예제를 시작하세요.
#input_01.csv
a,b,c
0,2,5
#input_02.csv
b,a,c
0,2,5
#input_03.csv
b,a
0,2
넌 달릴 수 있어
mlr --csv cut -f a,b then unsparsify input_0*.csv >output.csv
가지다
a,b
0,2
2,0
2,0