Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> สมาร์ทโฟน >> Linux

วิธีดูไฟล์ Config โดยไม่แสดง Comment ใน Linux

คู่มือนี้แนะนำวิธีกรอง comment และบรรทัดว่างออกจากไฟล์การตั้งค่า (Config file) เพื่อดูเฉพาะค่าที่ใช้งานจริง

ปัญหา

ไฟล์ config เช่น httpd.conf, nginx.conf, sshd_config มักมี comment และบรรทัดว่างเยอะมาก ทำให้อ่านค่าที่ active ยาก

คำสั่งหลัก (แนะนำ)

# grep -v -E '^\s*#|^\s*$' /etc/httpd/conf/httpd.conf

อธิบาย

วิธีเดิม (sed) - ไม่แนะนำแล้ว

# sed '/ *#/d; /^ *$/d' /etc/httpd/conf/httpd.conf
# sed '/ ^#/d; /^ *$/d' /etc/httpd/conf/httpd.conf

วิธี sed มีปัญหา: ลบ comment ที่อยู่ท้ายบรรทัดไม่ได้, regex ซับซ้อนผิดง่าย

ตัวเลือกเพิ่มเติม

# แสดงเฉพาะบรรทัดที่มีค่าตั้งค่า (มี =)
grep -v -E '^\s*#|^\s*$' /etc/httpd/conf/httpd.conf | grep '='

# แสดงพร้อมหมายเลขบรรทัด
grep -n -v -E '^\s*#|^\s*$' /etc/httpd/conf/httpd.conf

# บันทึกเป็นไฟล์ใหม่
grep -v -E '^\s*#|^\s*$' /etc/httpd/conf/httpd.conf > httpd.conf.clean

สรุปเปรียบเทียบ

ส่วนคำอธิบาย
grep -vInvert match (แสดงบรรทัดที่ ไม่ ตรงกับ pattern)
-Eใช้ Extended Regex
'^\s*#'บรรทัดเริ่มด้วย whitespace แล้วตามด้วย # (comment)
'^\s*$'บรรทัดว่าง (มีแค่ whitespace หรือว่างเปล่า)
|OR (ทั้ง comment และบรรทัดว่าง)

แนะนำ: ใช้ grep -v -E '^\s*#|^\s*$' เป็นคำสั่งมาตรฐานสำหรับดู config file สะอาด

วิธีข้อดีข้อเสีย
grep -v -E (แนะนำ)เข้าใจง่าย, เร็ว, ถูกต้อง, มาตรฐาน POSIX-
sedแก้ไขไฟล์ได้ (-i)Regex ซับซ้อน, ลบ inline comment ไม่ได้
awkยืดหยุ่นสูงซับซ้อนกว่า