Computer >> Hướng Dẫn Máy Tính >  >> Điện Thoại Thông Minh >> Linux

Cách xem tệp cấu hình bỏ qua chú thích và dòng trống trong Linux

Hướng dẫn này đưa ra các phương pháp xem tệp cấu hình (config) trong Linux mà lọc bỏ các dòng chú thích (comment) và dòng trống – giúp tập trung vào các chỉ thị (directive) đang hoạt động.

Khi chỉnh sửa các tệp như httpd.conf (Apache) hoặc squid.conf, tôi thường gặp phải hàng trăm dòng bị comment (bắt đầu bằng #) hoặc dòng trống, làm khó việc tìm các cấu hình thực tế.

Phương pháp 1: sed – Lọc bỏ comment (bất kỳ vị trí) và dòng trống

# sed '/ *#/d; /^ *$/d' /etc/httpd/conf/httpd.conf
  • / *#/d: Xóa dòng chứa dấu # có thể có khoảng trắng trước (comment giữa dòng hoặc đầu dòng).
  • /^ *$/d: Xóa dòng chỉ chứa khoảng trắng hoặc rỗng.

Phương pháp 2: sed – Chỉ lọc comment ở đầu dòng

# sed '/^#/d; /^ *$/d' /etc/httpd/conf/httpd.conf
  • /^#/d: Chỉ xóa dòng bắt đầu bằng # (giữ lại comment cuối dòng như Port 80 # HTTP).
  • ^ trong regex = đầu dòng.

Phương pháp 3: grep – Đơn giản, dễ nhớ

# grep -v -E '^#|^$' /etc/httpd/conf/httpd.conf
  • -v: Đảo ngược khớp (in dòng KHÔNG khớp).
  • -E: Bật regex mở rộng.
  • '^#|^$': Khớp dòng bắt đầu bằng # HOẶC dòng rỗng.

Ưu điểm: Giữ lại comment cuối dòng. Nhược điểm: Không loại bỏ dòng chỉ chứa khoảng trắng (dùng '^#|^[[:space:]]*$' để khắc phục).

Phương pháp 4: egrep (grep -E) – Bổ sung loại bỏ khoảng trắng

# grep -v -E '^#|^[[:space:]]*$' /etc/httpd/conf/httpd.conf

Lưu ý về comment cuối dòng (inline comment)

Nếu tệp có dòng: ServerName example.com # Main site, phương pháp 1 sẽ xóa toàn bộ dòng. Nếu muốn giữ directive nhưng bỏ phần comment, dùng:

# sed 's/#.*//; /^[[:space:]]*$/d' /etc/httpd/conf/httpd.conf
  • s/#.*//: Xóa từ ký tự # đầu tiên đến hết dòng.
  • /^[[:space:]]*$/d: Xóa dòng rỗng sau khi đã dọn comment.

Tạo alias cho tiện dùng

Thêm vào ~/.bashrc:

alias viewconf='grep -v -E \"^#|^[[:space:]]*$\"'

Sau đó chỉ cần: viewconf /etc/nginx/nginx.conf