sed mit PCRE (wie grep -P)


Antworten:


7

Umgehung:

Sie können den Pathological Eclectic Rubbish Lister verwenden:

perl -pe 's/../../g' file

oder Inline ersetzen:

perl -pie 's/../../g' file

Dies funktioniert in den Fällen, in denen ich benutze sed. Wenn es komplizierter wird, schreibe ich ein kleines Python-Skript.


Nun, das ist großartig für die Substitution, aber wie würden Sie andere Sed-Sachen in Perl machen? wie zum Beispiel/delete this line/ d
wjandrea

1
Das vielversprechendste, was ich nach einer schnellen Suche gefunden habe, ist s2p(sed to Perl), obwohl ich es gerade ausprobiert habe und die Ausgabe SEHR ausführlich war.
Wjandrea

1
@wjandrea Ich habe die Antwort aktualisiert: "Dies funktioniert in den Fällen, in denen ich sie verwende sed. Wenn die Dinge komplizierter werden, schreibe ich ein kleines Python-Skript."
Guettli

1
@wjandrea:perl -ne 'print unless /delete this line/'
Adrian Pronk

6

Im Fall von GNU Sed scheint der angegebene Grund zu sein

Ich hatte Angst, dass es in einen dieser 'Risse' geriet ... obwohl nach dem, was damals gesagt wurde, ein Teil der Arbeit bereits erledigt war und es wie eine Frage von Dokumenten und Verpackung aussah ... (obwohl ich zugebe In Computer Sci dauern die letzten 10% der Arbeit oft 90% der Zeit ...

Siehe GNU-Fehlerberichtsprotokolle - # 22801-Status bei festgeschriebener Änderung: Aktualisieren von 'sed' -REs um die PerlRE-Syntax - oder durchsuchen Sie das sed-devel-Archiv nach "PCRE", wenn Sie weitere Details wünschen.

Vergiss nicht, dass du es benutzen kannst perl sich für viele der einfachen Einzeiler verwenden können, für die Sie PCRE verwenden möchten sed.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.