Fish Shell:
YAML로 작업하기

방법:

Fish Shell은 YAML 파싱을 내장 지원하지 않지만, yq(가벼우면서 이식 가능한 커맨드라인 YAML 프로세서) 같은 제3자 도구를 사용해 YAML 데이터를 처리할 수 있습니다.

yq 설치하기(미설치시):

sudo apt-get install yq

YAML 파일에서 값 읽기: 예를 들어, 다음과 같은 내용의 config.yaml 파일이 있다고 가정합시다:

database:
  host: localhost
  port: 3306

데이터베이스 호스트를 읽으려면, 다음을 사용합니다:

set host (yq e '.database.host' config.yaml)
echo $host

샘플 출력:

localhost

YAML 파일 내 값 업데이트하기: port5432로 업데이트 하려면, 사용합니다:

yq e '.database.port = 5432' -i config.yaml

업데이트 확인:

yq e '.database.port' config.yaml

샘플 출력:

5432

새 YAML 파일 작성하기: 미리 정의된 내용으로 새로운 new_config.yaml을 생성하려면:

echo "webserver:
  host: '127.0.0.1'
  port: 8080" | yq e -P - > new_config.yaml

이는 yq를 사용하여 문자열을 처리하고 새 YAML 파일로 예쁘게 출력하는(-P 플래그) 것을 사용합니다.

복잡한 구조 파싱하기: 더 복잡한 YAML 파일이 있고, 중첩된 배열이나 객체를 추출해야 한다면, 다음을 사용할 수 있습니다:

echo "servers:
  - name: server1
    ip: 192.168.1.101
  - name: server2
    ip: 192.168.1.102" > servers.yaml

yq e '.servers[].name' servers.yaml

샘플 출력:

server1
server2

yq를 사용하여, Fish Shell은 YAML 문서를 탐색하고 다양한 자동화 및 구성 작업을 위해 조작하는 것을 간단하게 만들어 줍니다.