나는 grep이 패턴의 모든 빈 줄과 일치한다는 것을 알고 있습니다 ^$
. 그러나 그것은 무엇을 의미하는가 ^
? 내가 주면 grep '^' filename
모든 행과 일치합니다.
grep '' filename
모든 라인도 일치합니다 .
답변1
매뉴얼 grep
페이지에서는 다음 두 기호를 설명합니다.
고정됨
캐럿^
및 달러 기호는$
각각 줄의 시작과 끝에서 빈 문자열과 일치하는 메타 문자입니다.
검색은 ^
모든 줄에 있는 줄의 시작 부분만 일치하므로 모두 일치합니다. 빈 문자열 검색에는 전혀 제한이 없으므로 모든 줄과도 일치합니다. 검색은 ^$
"줄의 시작 부분을 먼저 일치시킨 다음 줄의 끝 부분을 일치시키십시오"를 의미하며 이는 빈 줄입니다. foo
( )로 시작하는 모든 줄이나 ( )로 ^foo
끝나는 모든 줄을 찾는 것과 같은 작업에도 사용할 수 있습니다.bar
bar$
답변2
^
줄의 시작을 나타냅니다.
^$
이는 줄의 시작, 줄의 끝 $
, 그 사이에는 아무것도 없음을 의미합니다.
이 정규식을 사용하면 빈 줄을 찾고 빈 줄을 제거/제외할 수 있습니다.
예를 들어.
grep -Ev '^$|^#' /etc/sudoers
빈 줄과 해시( # )로 시작하는 줄은 제외됩니다.