grep으로 설정파일에서 주석제거 하기
정규표현식에서 일정한 의미를 가지고 쓰는 특수문자를 메타 문자라고 부른다.
여기에 쓰이는 글자가 포함된 패턴을 넣으려면 해당 글자 앞에 \를 넣어줘야 한다.
^ : 문자열의 시작
$ : 문자열의 종료. 옵션에 따라 문장의 끝 또는 문서의 끝에 매치된다.
. : 임의의 한 문자
[]: 문자 클래스. 문자 클래스 안에 들어가 있는 문자는 그 바깥에서 하나의 문자로 취급된다.
-> ^ : 문자 클래스 내에서 ^는 not
-> - : ex) a-z는 a에서 z까지의 문자
| : or를 나타냄
? : 앞 문자가 없거나 하나 있음
+ : 앞 문자가 하나 이상임
* : 앞 문자가 0개 이상임
{n,m} : 앞 문자가 n개 이상 m개 이하. {0,1} 은 ?와 같은 의미다.
{n,} : 앞 문자가 n개 이상. 위의 형태에서 m이 생략된 형태이다. {0,} 이면 *와 같고 {1,} 이면 +와 같은 의미이다.
{n} : 앞 문자가 정확히 n개. {n,n} 과 같은 의미이다.
() : 하나의 패턴구분자 안에 서브 패턴을 지정해서 사용할 경우 괄호로 묶어주는 방식을 사용한다.
\s : 공백문자
\b : 문자와 공백 사이를 의미한다.
\d : 숫자 [0-9]와 같다.
\t : 탭문자
\w : 단어 영문자+숫자+_(밑줄) [0-9a-zA-Z_]
문자 이스케이프는 대문자로 적으면 반대를 의미한다.
$ grep "^[^#;]" redis6379.conf
bind 0.0.0.0
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
참고: https://unix.stackexchange.com/questions/60994/how-to-grep-lines-which-does-not-begin-with-or