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
반응형
'🌏 OS > Linux' 카테고리의 다른 글
[Linux] awk (0) | 2024.08.07 |
---|---|
[Linux] 파일 시간 확인하기 (0) | 2024.08.02 |
[Linux] 사용자에게 sudo 권한 부여 (0) | 2024.07.05 |
[Linux] sed (0) | 2024.06.26 |
[Linux] umask (0) | 2024.06.17 |