Regex mit egrep
-
Hi,
echo "788h\\blub\bla\foo\04-lala\hihi\hoho(())))=)=" | egrep -o '\\\\.+\[\w-]*'
Sollte eigentlich folgendes ausgeben:
\\blub\bla\foo\04-lala\hihi\hoho
http://regex101.com/ erkennt das Muster.
Was mache ich bei egrep falsch?Danke, im Voraus!
L. G.,
IBV
-
Hi,
dein Fehler hat nicht mit egrep zu tun, sondern mit der Konsole(bash nehme ich an).
Wenn du links single quotes nimmst kommt fast das erwartete Ergebnis raus, nur das hoho fehlt am Ende.
Woran das liegt, kann ich dir jetzt aber auch nicht sagen.
-
Ah, verstehe. Double Quotes evaluiert Ausdrücke. D. h. aus "\\" wird '\'.
\w versteht der irgendwie nicht, aber [a-zA-Z0-9\-] schon.
Damit geht es nun:echo '788h\\blub\bla\foo\04-lala\hihi\ho-9hO(())))=)=' | egrep -o '\\\\.+\[a-zA-Z0-9\-]*'
Thx!
L. G.,
IBV
-
Hi,
ich würde gerne, dass bei diesem Text
788h\\blub\bla.foo\foo\04-lala\hihi\ho-9hO\\dassdf\sdfsd(())))=)=
folgendes ausgegeben wird:
\\blub\bla.foo\foo\04-lala\hihi\ho-9hO
Leider wird folgendes ausgegeben:
\\blub\bla.foo\foo\04-lala\hihi\ho-9hO\\dassdf\sdfsd
Mein regex:
\\\[a-zA-Z0-9\-\.\]*\[a-zA-Z0-9\-]*
\\\ darf nur am Anfang vorkommen.
Jemand eine Idee?Danke, im Voraus!
L. G.,
IBV
-
Mit
\\(\[^\\\'\"\?]+)*
geht es nun, aber egrep macht nun wieder Probleme:
compname@user:~/Dokumente$ egrep --binary-files=text -o '\\(\[^\\\'\"\?]+)*' < blub.lnk bash: Syntaxfehler beim unerwarteten Wort »)«