Computer >> 컴퓨터 >  >> 프로그래밍 >> Bash 프로그래밍

리눅스 설정 파일 주석 제거하기 – grep 명령어로 핵심 설정만 몇 초 만에 깔끔하게 확인

수백 줄에 달하는 주석으로 가득 찬 설정 파일을 뒤지다 보면, 정작 중요한 설정값만 골라서 확인하고 싶은 순간이 있습니다. 이번 글에서는 리눅스에서 설정 파일의 주석과 불필요한 내용을 걸러내고 핵심 구성만 깔끔하게 확인하는 다양한 방법을 소개합니다.

grep 명령어로 주석 제거하기

이 작업에는 grep 명령어를 활용하면 됩니다. 아래 명령어는 세미콜론(;)으로 주석 처리된 줄을 걸러내고 PHP 7.1의 현재 설정만 주석 없이 화면에 출력해 줍니다.

$ grep ^[^\;] /etc/php/7.1/cli/php.ini
리눅스 설정 파일 주석 제거하기 – grep 명령어로 핵심 설정만 몇 초 만에 깔끔하게 확인

참고로 ;는 셸에서 특별한 의미를 가지는 문자이므로, 명령어 안에서 일반 문자로 취급되도록 역슬래시(\) 이스케이프 문자를 함께 사용해야 합니다.

# 문자로 주석 처리된 파일 다루기

대부분의 설정 파일은 # 문자로 주석을 표시합니다. 이 경우에는 아래 명령어를 사용하면 됩니다.

$ grep ^[^#] /etc/postfix/main.cf

공백·탭으로 시작하는 주석까지 한 번에 제거하기

그런데 주석 줄이 #;가 아니라 공백 또는 으로 시작하는 경우도 있습니다. 이런 줄은 물론 결과에서 빈 줄까지 한 번에 없애고 싶다면 다음 명령어를 사용하세요.

$ egrep -v "^$|^[[:space:]]*;" /etc/php/7.1/cli/php.ini
OR
$ egrep -v "^$|^[[:space:]]*#" /etc/postfix/main.cf
리눅스 설정 파일 주석 제거하기 – grep 명령어로 핵심 설정만 몇 초 만에 깔끔하게 확인

명령어 패턴 자세히 살펴보기

위 예제에서 -v 옵션은 '매칭되는 줄'이 아니라 '매칭되지 않는 줄'을 출력하라는 의미입니다. 즉, 매칭의 의미를 반전시키는 역할을 합니다. 그리고 패턴 "^$|^[[:space:]]*#"는 다음과 같이 해석할 수 있습니다.

  • ^$ – 빈 줄(공백 줄)을 제거합니다.
  • ^[[:space:]]*# 또는 ^[[:space:]]*;# 또는 ;로 시작하거나, 그 앞에 공백·탭이 붙은 줄을 매칭합니다.
  • | – 두 개의 정규 표현식을 하나로 연결하는 중위(infix) 연산자입니다.

더 알아보기: grep 활용 팁

  1. 리눅스에서 grep, egrep, fgrep의 차이점은 무엇일까?
  2. 문자 클래스와 괄호 표현식을 활용하는 고급 리눅스 grep 명령어 11가지

지금까지 리눅스에서 설정 파일의 주석을 손쉽게 제거하고 핵심 내용만 확인하는 방법을 알아봤습니다. 실무에서 설정 파일을 자주 다루는 분들이라면 이 명령어들을 익혀두면 작업 속도가 눈에 띄게 빨라질 것입니다. 여러분만의 다른 유용한 방법이 있다면 댓글로 공유해 주세요!