모든 것을 온라인에 있지만 grep과 일치


2

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

만약 내가 가지고 있다면

#define VERSION 0.1

명령이 에코되어야합니다

0.1

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

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


찾고있는 #define VERSION?
Dennis

네. 내가 구체적으로하고있는 것은 쉘 명령을 실행하여 VERSION이 정의 된 것을 가져 와서 Makefile의 매크로에 저장하는 것입니다.
Zach Latta

답변:


2

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

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

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

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

참조 : 남자 sed


1

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

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

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

grep '#define VERSION' | grep -o '[^ ]*$'
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.