Wie kann ich ein Wort nur in Klammern suchen?
Eingabe:
this is (test.com)
Wunschausgabe:
test.com
grep
regular-expression
Rahul Patil
quelle
quelle
Antworten:
Hier sind einige Optionen, die alle die gewünschte Ausgabe ausgeben:
Verwendung
grep
mit dem-o
Flag (nur übereinstimmenden Teil der Zeile drucken) und Perl-kompatiblen regulären Ausdrücken (-P
), die Lookarounds ermöglichen :Dieser reguläre Ausdruck muss möglicherweise erklärt werden:
(?<=\()
: Dies ist ein positiver Lookbehind , das allgemeine Format ist(?<=foo)bar
und das passt zu allen Fällen,bar
die direkt danach gefunden wurdenfoo
. In diesem Fall suchen wir nach einer öffnenden Klammer,\(
um sie zu umgehen.(?=\))
: Dies ist ein positiver Ausblick und entspricht einfach der schließenden Klammer.Die
-o
Option, diegrep
bewirkt, dass nur der übereinstimmende Teil einer Zeile gedruckt wird. Wir suchen also nach den Angaben in Klammern und löschen sie dann mitsed
:Analysieren Sie das Ganze mit Perl:
Analysieren Sie das Ganze mit
sed
:quelle
Ein Ansatz wäre die Verwendung von PCRE - Perl - kompatiblen regulären Ausdrücken mit
grep
:Verweise
quelle