Fish Shell:
การทำงานกับ YAML
วิธีการ:
Fish Shell ไม่มีการสนับสนุนการแยกวิเคราะห์ YAML อย่างในตัว, แต่คุณสามารถใช้เครื่องมือของบุคคลที่สามเช่น yq (โปรเซสเซอร์คอมมานด์ไลน์ YAML ที่เบาและพกพาได้) เพื่อจัดการข้อมูล YAML
การติดตั้ง yq (หากยังไม่ได้ติดตั้ง):
sudo apt-get install yqการอ่านค่าจากไฟล์ YAML:
สมมติคุณมีไฟล์ YAML config.yaml ที่มีเนื้อหาดังต่อไปนี้:
database:
host: localhost
port: 3306เพื่ออ่าน host ของฐานข้อมูล, คุณจะใช้:
set host (yq e '.database.host' config.yaml)
echo $hostตัวอย่างผลลัพธ์:
localhostการอัพเดทค่าในไฟล์ YAML:
เพื่ออัพเดท port เป็น 5432, ใช้:
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 เพื่อประมวลผลและพิมพ์อย่างสวยงาม (-P flag) สตริงเข้าไปในไฟล์ YAML ใหม่
การแยกวิเคราะห์โครงสร้างที่ซับซ้อน: หากคุณมีไฟล์ 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 และจัดการกับมันสำหรับงานอัตโนมัติและการกำหนดค่าที่หลากหลาย