grep 정규식 '[c]ron'과 'cron'은 같은 의미를 갖나요? [복사]

grep 정규식 '[c]ron'과 'cron'은 같은 의미를 갖나요? [복사]

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 작업 프로세스와 일치합니다.

관련 정보