grep --recursive를 사용하여 "필요 없음" 및 "원함"이라는 단어가 포함된 특정 줄을 어떻게 제외할 수 있습니까?

grep --recursive를 사용하여 "필요 없음" 및 "원함"이라는 단어가 포함된 특정 줄을 어떻게 제외할 수 있습니까?

현재 도트 파일을 작성 중이고 프로젝트 디렉토리의 모든 주석을 나열하고 싶습니다 TODO: .... 이를 위해 bash 별칭을 만들었습니다.

 alias mytodo='grep --recursive "TODO: "'

잘 작동하지만 별칭 정의도 반환합니다. 샘플 출력입니다.

 devs@dotfiles$ mytodo

 bash/profile.d/aliases/: alias mytodo='grep --recursive "TODO: "'
 bin/git_branch_status/: # TODO: Add checking of remote branch status.
 tools/setup/: # TODO: Add search for existing symlinks.

별칭 정의를 사용하여 해당 행을 명시적으로 제외하려면 어떻게 해야 합니까?

답변1

정규식 자체 일치를 방지하는 한 가지 방법은 개별 문자를 문자 클래스로 묶는 것입니다.

alias mytodo='grep --recursive "TOD[O]: "'

또는 (에스티븐 차제라스), 패턴에 추가 따옴표를 사용하여 별칭을 저장할 수 있습니다.

alias mytodo='grep --recursive "TO''DO: "'

그런 다음 해당 행을 여전히 찾을 수 없지만 별칭에는 원래 패턴이 포함되어 있습니다. 예를 들어 다음을 사용하려는 경우에 유용합니다. 고정된 문자열 일치( grep -F).

답변2

간단히 파이프하여 grep -v 'alias'모든 alias.

관련 정보