parsecsv
텍스트 필드의 CSV 문자열을 파싱하여 각 컬럼을 필드로 추출합니다.
명령어 속성
| 항목 | 설명 |
|---|---|
| 명령어 유형 | 가공 쿼리 |
| 필요 권한 | 없음 |
| 라이선스 사용량 | 해당 없음 |
| 병렬 실행 | 지원 |
| 분산 실행 | 미지원 |
문법
parsecsv [field=FIELD] [overlay={t|f}] [tab={t|f}] [strict={t|f}] [FIELD [, FIELD ...]]
옵션
field=FIELD- 파싱 대상 필드 이름 (기본값:
line) overlay={t|f}t지정 시 원본 레코드의 필드를 유지하면서 파싱된 필드를 덮어씁니다. 생략하면 파싱된 필드만 출력합니다. (기본값:f)tab={t|f}t지정 시 구분자로 탭 문자를 사용합니다. 생략하면 쉼표(,)를 구분자로 사용합니다. (기본값:f)strict={t|f}t지정 시 RFC 4180 기준으로 엄격하게 파싱합니다. (기본값:f)
대상
FIELD- 각 컬럼에 대응하는 필드 이름. 쉼표(
,)로 구분하여 여러 이름을 순서대로 지정합니다. 생략하면column0,column1, ... 형태로 자동 지정됩니다.
입력 필드
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
line | 문자열 | 조건부 | 파싱 대상 필드 (기본값). field 옵션으로 다른 필드를 지정할 수 있습니다. |
출력 필드
| 필드 | 타입 | 설명 |
|---|---|---|
column0, column1, ... | 문자열 | CSV 각 컬럼의 값. 필드 이름을 지정하면 해당 이름으로 출력합니다. |
오류 코드
오류 코드가 없습니다.
설명
parsecsv 명령어는 지정한 필드의 CSV 문자열을 파싱하여 각 컬럼 값을 필드로 추출합니다. 필드 이름을 지정하면 각 컬럼에 대응하는 이름이 사용되고, 생략하면 column0, column1, ... 형태로 자동 지정됩니다.
사용 예
-
CSV 문자열 파싱
json "{'line': '192.0.2.1,GET,/index.html,200,1024'}" | parsecsvline필드의 CSV 문자열을 파싱하여column0,column1,column2,column3,column4필드를 생성합니다. -
필드 이름을 지정하여 파싱
json "{'line': '192.0.2.1,GET,/index.html,200,1024'}" | parsecsv src_ip, method, uri, status, bytesCSV 문자열을 파싱하여 각 컬럼을
src_ip,method,uri,status,bytes필드로 추출합니다. -
탭 구분 문자열 파싱
json "{'line': '192.0.2.1\tGET\t/index.html\t200\t1024'}" | parsecsv tab=t src_ip, method, uri, status, bytes탭 문자를 구분자로 사용하여 각 컬럼을 지정한 필드 이름으로 추출합니다.
호환성
parsecsv 명령어는 소나 4.0 이전 버전부터 제공되었습니다.