Grep은 이상하게도 출력에서 ​​빈 줄을 제외합니다.

Grep은 이상하게도 출력에서 ​​빈 줄을 제외합니다.

예를 들어 댓글 필터링이라는 일반적인 작업을 해결할 때 다음과 같이 할 수 있습니다.

grep -v ^# /etc/apache2/apache2.conf

이렇게 하면 주석과 빈 줄이 없습니다. 이것은 예상됩니다.

다른 방법은 다음과 같습니다.

grep ^[^#] /etc/apache2/apache2.conf

하지만 동일한 출력을 얻지만 빈 줄은 없습니다. 이유는 무엇입니까?

답변1

두 번째는 최소한 하나의 문자가 포함된 줄을 찾아서 문자가 없는 빈 줄은 일치하지 않도록 하는 것입니다. 둘 다 원한다면 다음을 시도해 보세요.

grep -e ^[^#] -e ^$ /etc/apache2/apache2.conf

답변2

grep -v ^#
  • 다음으로 시작하지 않는 줄 제외#
  • 빈 줄은 으로 시작하지 않으므로 #가 아닙니다.전임자포함됨

빌라

grep ^[^#]
  • 다음을 제외한 모든 문자로 시작하는 줄을 포함합니다.#
  • 빈 줄은 다음으로 끝나지 않습니다.어느성격은 그렇지 않아요존재하다포함됨

관련 정보