grep은 한 패턴에서는 작동하지만 다른 패턴에서는 작동하지 않습니다.

grep은 한 패턴에서는 작동하지만 다른 패턴에서는 작동하지 않습니다.

순전히 grep 질문입니다.

파일에 주석 처리된 문자열이 포함되어 있습니다. 예를 들어:

abc
abc1
# def3
ghi5
qwe

숫자가 있는 모든 문자열을 가져오고 싶지만 문자열 앞에 "#"이 있는 경우에는 가져오지 않습니다. 따라서 이 예에서 우리는

abc1
ghi5

Double grep으로 문제가 해결되었습니다.

grep -vE "^#" file.txt | grep -E "[0-9]"

이제 질문은: 하나의 grep으로 이를 수행할 수 있는 방법이 있습니까?

답변1

첫 번째 문자가 문자라고 확신할 수 있는 경우(둘 중 하나도 확인하지 않음):

grep '^[^#].*[0-9]' file.txt

관련 정보