일부 VB 소스 파일을 탐색 중입니다. 나는 다음 쿼리를 사용하고 있습니다 -
grep -nr "GlobalCommArea\s*=\s*.*\.Transaction" .
그러나 일부 줄은 주석 처리되어 있으며 한 줄 주석으로 시작됩니다. VB의 한 줄 주석은 작은따옴표(')로 시작합니다.
안타깝게도 일부 줄에는 코드 줄 뒤에 작은따옴표 주석이 있기 때문에 작은따옴표가 포함된 모든 줄을 간단히 제거할 수는 없습니다.
그래서 줄 시작 부분의 작은 따옴표를 제거하기 위해 이와 같은 것을 시도했습니다.
grep -nr "GlobalCommArea\s*=\s*.*\.Transaction" . | grep -v "^\s*'"
그러나 이것은 작동하지 않았습니다. 어떻게 해야 하나요?
답변1
grep -n
줄 번호와 일치하는 접두사를 사용하고 있으므로 두 번째 패턴은 "^\s*'"
절대 일치하지 않습니다. 대신 정규식을 사용할 수 있습니다.
grep -nr "^[^']*GlobalCommArea\s*=\s*.*\.Transaction" .
그러면 앞에 작은따옴표가 없는 패턴 인스턴스가 검색됩니다.