grepを使用して、最初の二重引用符から2番目の二重引用符まで、複数の(")文字列の内容を抽出する方法

grepを使用して、最初の二重引用符から2番目の二重引用符まで、複数の(")文字列の内容を抽出する方法

この文字列があります<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=").*?(?=")'

関連情報