0
나는 많은 Java 소스 파일을 가지고 있으며 소스의 각 클래스에서 구현 한 인터페이스를 나열하려고합니다.Java 소스 파일에서 구현 인터페이스를 인쇄하는 정규식
클래스가
class SomeClass
implements
InterfaceC,
InterfaceD
{
그래서, 기본적으로, 나는이 할 수있는 경우 여러 줄에 선언 된 클래스가,
class MyClass implements MyInterfaceA, MyInterfaceB {
그러나 한 줄에 선언 할 때 가장 좋은 경우는 첫 번째 implements
문자열 리터럴과 문자 {
의 첫 번째 발생 사이의 모든 것을 캡처 할 수있는 정규 표현식을 구현 인터페이스 이름이 있습니다.
지난 1 시간 정도 동안 나는 grep, pcregrep, sed 및 awk와 같은 여러 도구를 고치고 마침내 작동하는 명령 하나에 도달했습니다. 당신이 볼 수 있듯이
pcregrep -M 'class[\s\S]*implements'
, 나는 선 내가 implements
과 {
사이에 출력 모두에 동일한 표현을 수정
class SomeClass
implements
단어
class
및
implements
하고 명령 출력 사이에 출력 모든 것을 시도하고있다 파일에
{
이 너무 많거나
{
이 특수 문자이기 때문에 필자가 요구하는 것보다 훨씬 더 많은 것을 출력합니다.
그 후에 첫 번째 implements
과 첫 번째 {
사이의 텍스트 만 출력하려면 어떻게해야합니까?
샘플 input.java
파일 : GNU 그렙와