모든 것을 온라인에 있지만 grep과 일치 질문을 보았지만

grep을 사용하여 일치하는 것을 제외하고 일치하는 줄에 모든 것을 얻으려고합니다.

만약 내가 가지고 있다면

#define VERSION 0.1

명령이 에코되어야합니다

0.1

나는 질문을 보았지만 같은 줄에있는 것을 원합니다.

매뉴얼 페이지를 읽었지만 특정 사용 사례와 일치하는 항목이 없습니다. grep보다 다른 명령이 더 좋을까요?



답변

이를 달성하는 쉬운 방법은 grep의 출력을 sed로 파이프하는 것입니다.

command | grep "^#define VERSION" | sed 's/^#define VERSION //'

정규식에 -n스위치와 p(즉, 인쇄) 패턴을 사용하는 경우 sed 만 사용하여 동일한 결과를 얻을 수 있습니다 . 이렇게하면 수정 된 줄만 교체되고 인쇄됩니다.

command | sed -n 's/^#define VERSION //p'

참조 : 남자 sed


답변

grep 버전이 perl 정규식을 지원하면 다음과 같이 할 수 있습니다.

grep -oP '(?<=#define VERSION )[^ ]*$'

그렇지 않으면 grep을 두 번 호출하십시오.

grep '#define VERSION' | grep -o '[^ ]*$'


답변