Dasel v3를 사용한 데이터 탐색
<when_to_use>
다음 상황에서 이 스킬을 활성화하세요:
- 익숙하지 않은 구조화된 데이터 파일(설정, API 응답, 데이터셋)을 탐색할 때
- 문서를 수정하기 전에 스키마나 구조를 발견할 때
- 중첩된 설정 구조(Kubernetes 매니페스트, CI 파이프라인, 패키지 파일)를 조사할 때
- 큰 배열이나 깊이 중첩된 객체를 샘플링하여 내용을 이해할 때
- 변환이나 추출 전에 데이터 유형을 식별할 때
</when_to_use>
지원 형식
Dasel은 파일 확장자에서 형식을 자동 감지합니다. stdin에서 읽거나 확장자가 모호한 경우 -i <format>으로 재정의합니다.
형식 식별자: json, yaml, toml, xml, csv, hcl, ini
범용 탐색 워크플로우
알 수 없는 구조화된 데이터 파일을 만났을 때 다음 순서를 따르세요. 각 단계는 범위를 좁힙니다.
1단계 — 형식 감지
Dasel은 파일 확장자에서 형식을 유추합니다. stdin이나 비표준 확장자의 경우 명시적으로 지정하세요:
cat mystery_file | dasel -i json 'keys($this)'
2단계 — 최상위 키
cat config.yaml | dasel -i yaml 'keys($this)'
출력: 최상위 키 이름의 배열입니다. 항상 첫 번째 탐색 명령어입니다.
3단계 — 구조 미리보기
작은 파일(설정, 매니페스트)의 경우 전체 문서를 출력합니다:
cat config.yaml | dasel -i yaml
큰 파일의 경우 4단계로 건너뜁니다.
4단계 — 중첩된 키 찾기
레벨별로 탐색합니다:
cat config.yaml | dasel -i yaml 'server'
cat config.yaml | dasel -i yaml 'keys(server)'
cat config.yaml | dasel -i yaml 'keys(server.logging)'
모든 깊이에서 재귀적으로 키 찾기:
cat config.yaml | dasel -i yaml '..keys($this)'
5단계 — 배열 샘플링
전체 배열을 로드하지 않고 처음 몇 개의 요소 미리보기:
cat data.json | dasel -i json 'items[0:3]'
단일 요소 검사:
cat data.json | dasel -i json 'items[0]'
6단계 — 유형 검사
모든 노드의 유형을 결정합니다:
cat data.json | dasel -i json 'typeOf(settings)'
cat data.json | dasel -i json 'typeOf(items[0].count)'
반환 값: "string", "array", "bool", "null", "int", "float"
7단계 — 값 추출
경로를 알면 특정 값을 추출합니다:
cat config.yaml | dasel -i yaml 'database.connection.host'
cat data.json | dasel -i json 'users[0].email'
탐색 패턴
너비 우선 탐색
루트에서 시작하여 각 레벨의 키를 더 깊이 들어가기 전에 열거합니다:
cat file.json | dasel -i json 'keys($this)' # 레벨 0
cat file.json | dasel -i json 'keys(metadata)' # 레벨 1
cat file.json | dasel -i json 'keys(metadata.labels)' # 레벨 2
검색 기반 탐색 (대용량 파일)
수동으로 탐색하기에는 파일이 너무 클 경우 search()에 조건자를 사용합니다:
# 특정 키를 포함하는 모든 객체 찾기
cat data.json | dasel -i json 'search(has("email"))'
# "id"와 "name" 키를 모두 포함하는 모든 객체 찾기
cat data.json | dasel -i json 'search(has("id") && has("name"))'
# 값이 일치하는 노드 찾기
cat data.json | dasel -i json 'search($this == 42)'
요소 개수 세기
cat data.json | dasel -i json 'len(items)'
cat data.json | dasel -i json 'len(keys($this))'
고유 값 찾기
모든 배열 요소에서 필드를 추출한 후 셸에서 중복 제거:
cat data.json | dasel -i json 'items.map(category)' | dasel -i json '$this...' | sort -u
재귀 하강
모든 깊이에서 키 이름에 해당하는 모든 값 찾기:
cat data.json | dasel -i json '..name'
모든 중첩 배열의 첫 번째 요소 가져오기:
cat data.json | dasel -i json '..[0]'
형식별 레시피
형식별 상세 탐색 명령어는 형식별 레시피를 참조하세요.
참조
- Dasel v3 문서 (2026-02-19 가져옴)
- Dasel 함수 색인 (2026-02-19 가져옴)
- Dasel GitHub 저장소 (2026-02-19 가져옴)