Wie hier beschrieben , möchten Sie eine positive Lookbehind-Klausel, wie z.
grep -P '(?<=name=)[ A-Za-z0-9]*' filename
Das -P lässt grep den Perl-Dialekt verwenden, andernfalls müssten Sie wahrscheinlich die Klammern verlassen. Sie können den -o
Parameter auch an anderer Stelle anhängen , um nur das auszudrucken, was übereinstimmt. Der Teil in Klammern gibt an, dass Sie alphanumerische Zeichen und Leerzeichen möchten.
Der Vorteil der Verwendung einer positiven Lookbehind-Klausel besteht darin, dass der Text "name =" nicht Teil der Übereinstimmung ist. Wenn grep übereinstimmenden Text hervorhebt, wird nur der alphanumerische Teil (und Leerzeichen) hervorgehoben. Der Parameter -o zeigt auch nicht den Teil "name =" an. Und wenn Sie dies auf ein anderes Programm wie sed umstellen, das möglicherweise den Text erfasst und etwas damit macht, wird der Teil "name =" nicht erfasst, obwohl Sie dies auch mithilfe der Erfassung von parenthess tun können.
echo 'name=some value here' | grep -Po 'name=\K[ A-Za-z0-9]*'