리눅스에서 설정 파일을 열었을 때 주석 줄을 걷어내고 실제로 활성화된 설정 내용만 확인하고 싶다면, 이 글에서 소개하는 몇 가지 유용한 방법을 활용해 보세요.
왜 주석 제거가 필요할까?
httpd.conf, squid.conf 같은 설정 파일은 자주 수정하게 되는데, 이런 파일에는 수백 줄에 달하는 설명용 주석과 기본값으로 사용하지 않아 주석 처리된 설정 지시문이 함께 들어 있습니다. 문제는 주석이 너무 많아서 실제로 동작하는 설정 지시문을 찾으려면 한참을 아래로 스크롤해야 한다는 점입니다.
sed 명령어로 주석과 빈 줄 한 번에 제거하기
Apache 설정 파일에서 활성화된 지시문만 골라서 보고 싶다면 다음 명령어를 사용하면 됩니다.
# sed '/ *#/d; /^ *$/d' /etc/httpd/conf/httpd.conf
이 sed 명령어는 /etc/httpd/conf/httpd.conf 파일을 읽으면서 주석이 포함된 줄과 불필요한 공백·빈 줄을 모두 필터링하고, 활성화된 설정 항목만 화면에 남깁니다. 덕분에 설정 파일 전체 구조를 한눈에 파악할 수 있어 수정 작업이 훨씬 편해집니다.
줄 처음이 주석인 경우만 제거하기
문자열 중간의 # 기호(URL 프래그먼트 등)는 그대로 두고, 줄 맨 앞이 주석으로 시작하는 줄만 제거하고 싶다면 아래 명령어를 입력하세요.
# sed '/^#/d; /^ *$/d' /etc/httpd/conf/httpd.conf
앞서 소개한 명령어와 거의 같지만 한 가지 차이가 있습니다. 첫 번째 패턴의 *(임의 문자 반복)를 ^(정규표현식에서 줄의 시작을 의미)로 바꾼 것입니다.
grep을 활용한 대안
grep을 더 선호한다면 아래 명령어로도 같은 결과를 얻을 수 있습니다.
# grep -Ev '^\s*#|^\s*$' /etc/httpd/conf/httpd.conf
-v 옵션은 패턴과 일치하지 않는 줄만 출력하므로, 주석 줄과 빈 줄이 모두 제외된 깔끔한 목록을 얻을 수 있습니다.
참고: 배포판이나 파일 형식에 따라 위 명령어가 의도대로 동작하지 않을 수 있습니다. 이럴 때는 정규표현식 패턴을 환경에 맞게 살짝 조정하면 됩니다.