grep을 사용하여 첫 번째 큰따옴표에서 두 번째 큰따옴표까지 여러(") 문자열의 내용을 추출하는 방법

grep을 사용하여 첫 번째 큰따옴표에서 두 번째 큰따옴표까지 여러(") 문자열의 내용을 추출하는 방법

이 문자열이 있습니다<activity android:label="@string/app_name" android:launchMode="singleTask" android:name=".MainActivity" android:theme="@style/AppTheme" android:windowSoftInputMode="adjustPan">

.MainActivity해당 문자열에서 이것만 추출하려고 합니다.

나는 사용했다

grep -o -P '(?<=android:name=").*(?=")' output.txt

하지만 그것은 추출.MainActivity" android:theme="@style/AppTheme" android:windowSoftInputMode="adjustPan

첫 번째 큰따옴표에서 다음 큰따옴표까지만 추출하고 마지막 큰따옴표는 추출하지 않는 방법이 있습니까?

답변1

"?"를 추가하여 탐욕스럽지 않은 일치를 사용해야 합니다. 별 이후.

grep -o -P '(?<=android:name=").*?(?=")'

관련 정보