S
steff123
Grünschnabel
Hallo Leute,
ich bastle gerade an einem Shell-Script und brauche dabei ein paar RegExps. Bisher hatte ich mich mit RegExps wenig auseinander gesetzt, da es nur ein privates Vergnügen ist.
Nachdem ich mich im Internet ein bisschen in die Thematik eingelesen habe, wollte ich die IP-Adresse aus folgender XML-Syntax greppen und habe das Script unten erstellt. Ich verstehe nur nicht warum in der Variante "Test 1 Extended" auch DE.mpg.mp4.otr zurückgegeben wird und nicht in der Perl-Variante? Und warum \b die Wirkung in Test 2 hat? Soll \b nicht bewirken, dass ein gesamtes Wort zurückgegeben wird?
Danke für die Antworten schonmal
Folgenden Test-String habe ich verwendet
Hier das Test-Script
Hier die Ausgabe
ich bastle gerade an einem Shell-Script und brauche dabei ein paar RegExps. Bisher hatte ich mich mit RegExps wenig auseinander gesetzt, da es nur ein privates Vergnügen ist.
Nachdem ich mich im Internet ein bisschen in die Thematik eingelesen habe, wollte ich die IP-Adresse aus folgender XML-Syntax greppen und habe das Script unten erstellt. Ich verstehe nur nicht warum in der Variante "Test 1 Extended" auch DE.mpg.mp4.otr zurückgegeben wird und nicht in der Perl-Variante? Und warum \b die Wirkung in Test 2 hat? Soll \b nicht bewirken, dass ein gesamtes Wort zurückgegeben wird?
Danke für die Antworten schonmal
Folgenden Test-String habe ich verwendet
Code:
<link>http://81.95.11.2/xbt/xbt_torrent_create.php?filename=BLABLABLA__TVOON_DE.mpg.mp4.otrkey&userid=2272565&mode=free&hash=1092df2ae8c1f100bc2a5676c566d5f3</link>
Hier das Test-Script
Code:
uname -a
/opt/bin/grep --version
echo
echo
echo IP-Adresse extrahieren
echo Test 1 Perl
/opt/bin/grep -P -o "([0-9]{1,3}[.]){3}[0-9]{1,3}" test.txt
echo Test 1 Extended
/opt/bin/grep -E -o "([0-9]{1,3}[.]){3}[0-9]{1,3}" test.txt
echo Test 2 Perl
/opt/bin/grep -P -o "\b([0-9]{1,3}[.]){3}[0-9]{1,3}\b" test.txt
echo Test 2 Extended
/opt/bin/grep -E -o "\b([0-9]{1,3}[.]){3}[0-9]{1,3}\b" test.txt
echo Test 3 Perl
/opt/bin/grep -P -o "(\d{1,3}[.]){3}\d{1,3}" test.txt
echo Test 3 Extended
/opt/bin/grep -E -o "([[:digit:]]{1,3}[\.]){3}[[:digit:]]{1,3}" test.txt
Hier die Ausgabe
Code:
Linux NAS001 3.4.6 #1 Fri Oct 3 16:06:36 CST 2014 armv5tel unknown
/opt/bin/grep (GNU grep) 2.12
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Mike Haertel and others, see <http://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>.
IP-Adresse extrahieren
Test 1 Perl
81.95.11.2
Test 1 Extended
81.95.11.2
DE.mpg.mp4.otr
Test 2 Perl
81.95.11.2
Test 2 Extended
81.95.11.2
Test 3 Perl
81.95.11.2
Test 3 Extended
81.95.11.2