grep 패턴 ^$와 ^의 차이점

grep 패턴 ^$와 ^의 차이점

나는 grep이 패턴의 모든 빈 줄과 일치한다는 것을 알고 있습니다 ^$. 그러나 그것은 무엇을 의미하는가 ^? 내가 주면 grep '^' filename모든 행과 일치합니다.

grep '' filename모든 라인도 일치합니다 .

답변1

매뉴얼 grep페이지에서는 다음 두 기호를 설명합니다.

고정됨
캐럿 ^및 달러 기호는 $각각 줄의 시작과 끝에서 빈 문자열과 일치하는 메타 문자입니다.

검색은 ^모든 줄에 있는 줄의 시작 부분만 일치하므로 모두 일치합니다. 빈 문자열 검색에는 전혀 제한이 없으므로 모든 줄과도 일치합니다. 검색은 ^$"줄의 시작 부분을 먼저 일치시킨 다음 줄의 끝 부분을 일치시키십시오"를 의미하며 이는 빈 줄입니다. foo( )로 시작하는 모든 줄이나 ( )로 ^foo끝나는 모든 줄을 찾는 것과 같은 작업에도 사용할 수 있습니다.barbar$

답변2

^줄의 시작을 나타냅니다.

^$이는 줄의 시작, 줄의 끝 $, 그 사이에는 아무것도 없음을 의미합니다.

이 정규식을 사용하면 빈 줄을 찾고 빈 줄을 제거/제외할 수 있습니다.

예를 들어.

grep -Ev '^$|^#'  /etc/sudoers

빈 줄과 해시( # )로 시작하는 줄은 제외됩니다.

관련 정보