Positiver / negativer Lookahead mit Grep und Perl
Meine login.txt-Datei enthält folgende Einträge
abc def
abc 123
def abc
abc de
tha ewe
Wenn ich den positiven Lookahead mit Perl mache, erhalte ich das folgende Ergebnis
cat login.txt | perl -ne 'print if /(?)abc\s(?=def)/'
abc def
Wenn ich grep benutze, erhalte ich das folgende Ergebnis
cat login.txt | grep -P '(?<=abc)\s(?=def)'
abc def
Negative Lookahed-Ergebnisse wie folgt aus Perl und Grep.
cat login | perl -ne 'print if /(?)abc\s(?!def)/'
abc 123
def abc
abc de
grep Ergebnis
cat login.txt | grep -P '(?<=abc)\s(?!def)'
abc 123
abc de
Perl stimmte mit dem def abc für den negativen Lookahead überein. aber es sollte nicht mit def abc übereinstimmen, da ich abc und dann def pattern überprüfe. grep liefert das korrekte Ergebnis.
Fehlt etwas in meinem Perlmuster?