![grep을 사용하여 첫 번째 큰따옴표에서 두 번째 큰따옴표까지 여러(") 문자열의 내용을 추출하는 방법](https://linux55.com/image/91838/grep%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%B2%AB%20%EB%B2%88%EC%A7%B8%20%ED%81%B0%EB%94%B0%EC%98%B4%ED%91%9C%EC%97%90%EC%84%9C%20%EB%91%90%20%EB%B2%88%EC%A7%B8%20%ED%81%B0%EB%94%B0%EC%98%B4%ED%91%9C%EA%B9%8C%EC%A7%80%20%EC%97%AC%EB%9F%AC(%22)%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%98%20%EB%82%B4%EC%9A%A9%EC%9D%84%20%EC%B6%94%EC%B6%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
이 문자열이 있습니다<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=").*?(?=")'