🌏 OS/Linux

[Linux] bash에서 yaml 파일 load하기

heywantodo 2024. 7. 18. 13:31
728x90
반응형

[Linux] bash에서 yaml 파일 load하기

 

bash에서 yaml 파일의 config를 로드해야하는 일이 생겼다.

열심히 찾아보니 sed와 awk을 이용하여 파싱을 해야 하는 예시가 많이 나왔는데

 

코드가 너무 복잡하고, 가독성이 좋지않아 사용하기에 고민이 되어 더 찾아본 결과

아주 깔끔하고 멋진 코드를 발견했다 🤩

load_yaml() {
    python3 -c "import yaml;print(yaml.safe_load(open('$1'))$2)"
}

value=$(load_yaml yaml_file "['key']")
echo $value

 

예를 들어 다음과 같은 yaml 파일이 있을 때 다음과 같이 사용이 가능하다.

## global definitions
global:
  debug: yes
  verbose: no
  debugging:
    detailed: no
    header: "debugging started"

## output
output:
   debug: $global_debug
value1=$(load_yaml test.yaml "['global']")
value2=$(load_yaml test.yaml "['global']['debugging']['header']")

 

참고

https://stackoverflow.com/questions/5014632/how-can-i-parse-a-yaml-file-from-a-linux-shell-script

728x90
반응형