如何使用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=").*?(?=")'

相关内容