Nushell
문서
쿡북
블로그
  • English
  • 中文
  • Deutsch
  • Français
  • Español
  • 日本語
  • Português do Brasil
  • Русский язык
  • 한국어
GitHub
문서
쿡북
블로그
  • English
  • 中文
  • Deutsch
  • Français
  • Español
  • 日本語
  • Português do Brasil
  • Русский язык
  • 한국어
GitHub
  • 소개
  • 설치하기
    • 기본 셸
  • 시작하기
    • 빠른 둘러보기
    • 시스템 이동
    • 누셸 방식으로 생각하기
    • 누셸 치트 시트
  • Nu 기본
    • 데이터 유형
    • 데이터 로드
    • 파이프라인
    • 문자열 작업
    • 목록 작업
    • 레코드 작업
    • 테이블 작업
    • 구조화된 데이터 탐색 및 액세스
    • 특수 변수
  • Nu에서 프로그래밍하기
    • 사용자 지정 명령
    • 별칭
    • 연산자
    • 변수
    • 제어 흐름
    • 스크립트
    • 모듈
      • 모듈 사용하기
      • 모듈 만들기
    • 오버레이
    • 정렬
    • 누셸 코드 테스트
    • 모범 사례
  • 셸로서의 Nu
    • 구성
    • 환경
    • 표준 출력, 표준 오류 및 종료 코드
    • 시스템(외부) 명령 실행
    • 타사 프롬프트 구성 방법
    • 디렉터리 스택
    • Reedline, Nu의 줄 편집기
    • 사용자 지정 완성
    • 외부 명령
    • Nu의 색상 지정 및 테마 설정
    • 후크
    • 백그라운드 작업
  • Nu로 전환하기
    • Bash에서 오신 분들을 위해
    • CMD.EXE에서 오신 분들을 위해
    • 다른 셸 및 도메인 특정 언어의 Nu 맵
    • 명령형 언어의 Nu 맵
    • 함수형 언어의 Nu 맵
    • 누셸 연산자 맵
  • 디자인 노트
    • 누셸 코드가 실행되는 방법
  • (약간)고급 사용법
    • 표준 라이브러리 (미리보기)
    • 데이터프레임
    • 메타데이터
    • 나만의 오류 만들기
    • 병렬 처리
    • 플러그인
    • explore

레코드 작업

팁

레코드는 테이블의 개별 행과 거의 동일합니다. 레코드를 본질적으로 "한 행 테이블"로 생각할 수 있습니다. 따라서 테이블 행에서 작동하는 대부분의 명령은 레코드에서도 또한 작동합니다. 예를 들어, update는 레코드와 함께 사용할 수 있습니다.

let my_record = {
 name: "Sam"
 age: 30
 }
$my_record | update age { $in + 1 }
# => ╭──────┬─────╮
# => │ name │ Sam │
# => │ age  │ 31  │
# => ╰──────┴─────╯

my_record 변수는 불변입니다. 파이프라인에서 반환된 업데이트된 레코드는 코드 블록에 표시된 대로 인쇄됩니다. my_record 변수는 여전히 원래 값을 보유하고 있습니다. $my_record.age는 여전히 30입니다.

레코드 만들기

레코드는 0개 이상의 키-값 쌍 매핑 모음입니다. JSON 객체와 유사하며 동일한 구문을 사용하여 만들 수 있습니다.

# 누셸
{ "apples": 543, "bananas": 411, "oranges": 0 }
# => ╭─────────┬─────╮
# => │ apples  │ 543 │
# => │ bananas │ 411 │
# => │ oranges │ 0   │
# => ╰─────────┴─────╯
# JSON
'{ "apples": 543, "bananas": 411, "oranges": 0 }' | from json
# => ╭─────────┬─────╮
# => │ apples  │ 543 │
# => │ bananas │ 411 │
# => │ oranges │ 0   │
# => ╰─────────┴─────╯

누셸에서 레코드의 키-값 쌍은 공백이나 줄 바꿈으로 구분할 수도 있습니다.

팁

레코드는 많은 필드를 가질 수 있으므로 기본적으로 왼쪽에서 오른쪽이 아닌 세로로 표시됩니다. 레코드를 왼쪽에서 오른쪽으로 표시하려면 nuon으로 변환하십시오. 예시:

  {
    name: "Sam"
    rank: 10
  } | to nuon
  # =>   {name: Sam, rank: 10}

레코드 업데이트

목록과 마찬가지로 레코드에 값을 insert할 수 있습니다. 예를 들어, 배를 좀 추가해 보겠습니다.

{ "apples": 543, "bananas": 411, "oranges": 0 }
| insert pears { 21 }
# => ╭─────────┬─────╮
# => │ apples  │ 543 │
# => │ bananas │ 411 │
# => │ oranges │ 0   │
# => │ pears   │ 21  │
# => ╰─────────┴─────╯

값을 update할 수도 있습니다.

{ "apples": 543, "bananas": 411, "oranges": 0 }
| update oranges { 100 }
# => ╭─────────┬─────╮
# => │ apples  │ 543 │
# => │ bananas │ 411 │
# => │ oranges │ 100 │
# => ╰─────────┴─────╯

새 필드가 있는 레코드의 복사본을 만들려면 다음 중 하나를 수행할 수 있습니다.

  • merge 명령 사용:

    let first_record = { name: "Sam", rank: 10 }
    $first_record | merge { title: "Mayor" }
    # =>   ╭───────┬───────╮
    # =>   │ name  │ Sam   │
    # =>   │ rank  │ 10    │
    # =>   │ title │ Mayor │
    # =>   ╰───────┴───────╯
  • 스프레드 연산자(...)를 사용하여 새 레코드 내에서 첫 번째 레코드를 확장합니다.

    let first_record = { name: "Sam", rank: 10 }
    {
      ...$first_record
      title: "Mayor"
    }
    # =>   ╭───────┬───────╮
    # =>   │ name  │ Sam   │
    # =>   │ rank  │ 10    │
    # =>   │ title │ Mayor │
    # =>   ╰───────┴───────╯

레코드 반복

레코드를 테이블로 전치하여 레코드의 키-값 쌍을 반복할 수 있습니다.

{ "apples": 543, "bananas": 411, "oranges": 0 }
| transpose fruit count
| each {|f| $"We have ($f.count) ($f.fruit)" }
# => ╭───┬─────────────────────╮
# => │ 0 │ We have 543 apples  │
# => │ 1 │ We have 411 bananas │
# => │ 2 │ We have 0 oranges   │
# => ╰───┴─────────────────────╯

레코드 값 액세스

레코드 값(및 기타 구조화된 데이터)에 액세스하는 방법에 대한 자세한 내용은 구조화된 데이터 탐색 및 액세스를 참조하십시오.

기타 레코드 명령

테이블 작업을 참조하십시오. 테이블 행에서 작동하는 명령은 일반적으로 레코드에서도 동일한 방식으로 작동합니다.

GitHub에서 수정하기
Contributors: NotTheDr01ds, fdncred, Hofer-Julian, heinwol, 0x4D5352, joshuanussbaum, Jan Klass, voyage200🍬, Taeyoon Kim, ImgBotApp, google-labs-jules[bot], deepthought
Prev
목록 작업
Next
테이블 작업