Bash:
การทำงานกับ YAML
วิธีการ:
การทำงานโดยตรงกับ YAML ใน Bash ต้องใช้ความคิดสร้างสรรค์เล็กน้อยเนื่องจาก Bash ไม่มีการสนับสนุนการแยกวิเคราะห์ YAML ด้วยตัวเอง อย่างไรก็ตาม คุณสามารถใช้เครื่องมือภายนอกเช่น yq
(เครื่องมือไล่ระดับคอมมานด์ไลน์ YAML ที่เบาและพกพาได้) เพื่อโต้ตอบกับไฟล์ YAML ได้อย่างมีประสิทธิภาพ มาดูการทำงานบางอย่างที่พบบ่อย:
การติดตั้ง yq
:
ก่อนที่จะลงไปในตัวอย่าง ตรวจสอบให้แน่ใจว่าคุณมี yq
ติดตั้งแล้ว คุณสามารถติดตั้งได้โดยปกติจากตัวจัดการแพ็คเกจของคุณ เช่น บน Ubuntu:
sudo apt-get install yq
หรือคุณสามารถดาวน์โหลดโดยตรงจากที่เก็บ GitHub ของมันได้
การอ่านค่า:
พิจารณาว่าคุณมีไฟล์ที่ชื่อว่า config.yaml
ด้วยเนื้อหาต่อไปนี้:
database:
host: localhost
port: 5432
user:
name: admin
password: secret
เพื่ออ่านโฮสต์ฐานข้อมูล คุณสามารถใช้ yq
ดังนี้:
yq e '.database.host' config.yaml
ผลลัพธ์ตัวอย่าง:
localhost
ปรับปรุงค่า:
เพื่อปรับปรุงชื่อผู้ใช้ใน config.yaml
ใช้คำสั่ง yq eval
พร้อมตัวเลือก -i
(แก้ไขที่ทำเล):
yq e '.user.name = "newadmin"' -i config.yaml
ตรวจสอบการเปลี่ยนแปลงด้วย:
yq e '.user.name' config.yaml
ผลลัพธ์ตัวอย่าง:
newadmin
เพิ่มองค์ประกอบใหม่:
เพื่อเพิ่มองค์ประกอบใหม่ใต้ส่วนฐานข้อมูล อย่างเช่น ฟิลด์ใหม่ timeout
:
yq e '.database.timeout = 30' -i config.yaml
การตรวจสอบเนื้อหาของไฟล์จะยืนยันการเพิ่มเข้ามา
ลบองค์ประกอบ:
เพื่อลบรหัสผ่านภายใต้ผู้ใช้:
yq e 'del(.user.password)' -i config.yaml
การทำงานนี้จะลบฟิลด์รหัสผ่านออกจากการกําหนดค่า
จำไว้ว่า yq
เป็นเครื่องมือที่ทรงพลังและมีความสามารถมากมาย รวมถึงการแปลง YAML เป็น JSON การผสานไฟล์ และการจัดการที่ซับซ้อนยิ่งขึ้นอีกมากมาย อ้างอิงเอกสาร yq
เพื่อการสำรวจเพิ่มเติม