![grep은 한 패턴에서는 작동하지만 다른 패턴에서는 작동하지 않습니다.](https://linux55.com/image/178200/grep%EC%9D%80%20%ED%95%9C%20%ED%8C%A8%ED%84%B4%EC%97%90%EC%84%9C%EB%8A%94%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%EB%A7%8C%20%EB%8B%A4%EB%A5%B8%20%ED%8C%A8%ED%84%B4%EC%97%90%EC%84%9C%EB%8A%94%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
순전히 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