![grep 정규식 '[c]ron'과 'cron'은 같은 의미를 갖나요? [복사]](https://linux55.com/image/105580/grep%20%EC%A0%95%EA%B7%9C%EC%8B%9D%20'%5Bc%5Dron'%EA%B3%BC%20'cron'%EC%9D%80%20%EA%B0%99%EC%9D%80%20%EC%9D%98%EB%AF%B8%EB%A5%BC%20%EA%B0%96%EB%82%98%EC%9A%94%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
grep 매뉴얼에서
ps -ef | grep ’[c]ron’
패턴이 대괄호 없이 작성되면 cron의 ps 출력 행뿐만 아니라 grep의 ps 출력 행과도 일치합니다. 일부 플랫폼에서는 ps가 출력을 화면 너비로 제한합니다. grep은 사용 가능한 메모리 외에 줄 길이에 제한이 없습니다.
대체 문자 집합을 나타내기 때문에 ? [c]ron
와는 다른 의미를 갖습니다 .cron
[c]
grep의 ps 출력 라인과 일치하지 않는 이유는 무엇입니까?
감사해요.
답변1
정규식에 관한 한, 그것들은 동일합니다.
ps
괄호를 사용하면 for 행의 출력은 grep
다음과 같습니다.
ps -ef | grep [c]ron
텍스트는 grep
표준 입력 에 공급되어 해당 줄에 포함되지 않은 텍스트를 grep
검색하려고 시도하므로 cron
해당 줄이 일치하지 않습니다.
대괄호가 없으면 줄에 text 가 포함되므로 cron
일치합니다.
답변2
grep '[c]ron'의 경우 ps 출력에는 리터럴 '[' 'c' ']' 'r' 'o' 'n'이 포함되므로 grep '[c]ron'은 grep과 일치하지 않습니다. 명령을 실행하는 동안 Still은 실행 중인 cron 작업 프로세스와 일치합니다.
grep 'cron'의 경우 ps 출력에는 리터럴 'c' 'r' 'o' 'n'이 포함되므로 grep 'cron'은 자체, grep 프로세스 및 어떤 경우에도 cron 작업 프로세스와 일치합니다.