Page 1 of 1
perl script mit regulären ausdrücken
Posted: 2004-02-08 18:48
by conym18
hi,
kann mir jemand ein kleines perl script basteln, das mir aus einer datei z.b. test.txt folgendes macht?
In der datei steht z.b. folgendes drin:
Code: Select all
#############################
</table><br><table border=0 cellpadding=0 cellspacing=2 width=400 align=center><tr><td width=20></td><td width=120></td><td width=120></td><td width=120></td><td width=20></td></tr><tr><td colspan=3 class=bb10> my very best ;)
<!-- <img src="/i/ger/Chat/key.gif" border=0 alt=""> <!--
</td><td class=b8 align=right colspan=2>|<font class=bb8>1</font> user|</td></tr><tr><td colspan=5 bgcolor=#1f1f1f><img src="/i/int/p.gif" width=400 height=1 border=0 alt=""></td></tr> <tr><td></td><td><a href="http://bestesstuec@uboot.com" target="_blank"><font color=000000>bestesstueck</font></a></td><td><a href=" " target="_blank"><font color=000000> </font></a></td><td><a href=" " target="_blank"><font color=000000> </font></a></td><td></td></tr>
</table><br><table border=0 cellpadding=0 cellspacing=2 width=400 align=center><tr><td width=20></td><td width=120></td><td width=120></td><td width=120></td><td width=20></td></tr><tr><td colspan=3 class=bb10> my roooooommmmmmmmmmm
<!-- <img src="/i/ger/Chat/key.gif" border=0 alt=""> <!--
</td><td class=b8 align=right colspan=2>|<font class=bb8>2</font> user|</td></tr><tr><td colspan=5 bgcolor=#1f1f1f><img src="/i/int/p.gif" width=400 height=1 border=0 alt=""></td></tr> <tr><td></td><td><a href="http://NaDu@uboot.com" target="_blank"><font color=000000>NaDu1</font></a></td><td><a href="http://xXxsuesse16xX@uboot.com" target="_bl
#############################
kannst du mir jetzt mit perl folgendes machen?
Also ich will nur die reine emailadresse (mit http://) haben in eine neue datei:
Also z.b. so:
http://bestesstuec@uboot.com
http://NaDu@uboot.com
http://xXxsuesse16xX@uboot.com
und so weiter?
Die neue datei soll z.b. ausgabe.txt heißen.
danke schonmal im voraus
Re: perl script mit regulären ausdrücken
Posted: 2004-02-08 19:17
by flolein
was für einen sinn hat http:// vor mail-adressen?
Re: perl script mit regulären ausdrücken
Posted: 2004-02-08 19:19
by conym18
na das mach ich dann in meinem script (user zu email)
wichtig ist nur, das der andere scheiß raus ist.
lösung?
ich versuche es grad mit dem TEXTPAD komme aber nicht wirklich weiter.
thx
Re: perl script mit regulären ausdrücken
Posted: 2004-02-08 19:40
by niklas_
conym18 wrote:na das mach ich dann in meinem script (user zu email)
wichtig ist nur, das der andere scheiß raus ist.
lösung?
ich versuche es grad mit dem TEXTPAD komme aber nicht wirklich weiter.
thx
Textpad? hilfe? Was willst du?
Re: perl script mit regulären ausdrücken
Posted: 2004-02-09 22:55
by sunx
#!/usr/bin/perl -w
print "Content-type: text/htmlnn";
open FILE, "<deine_datei.txt" or die $!;
@datei = <FILE>;
close FILE;
foreach $zeile(@datei){
#print $zeile;
if($zeile =~ m/([a-zA-Z0-9-.]{3,22}@[a-zA-Z0-9-.]+.[a-zA-Z]{2,3})/){
push @alle_mails,"$1n";
}
}
print @alle_mails;
ist zwar nicht 100%tig aber funktioniert.
MfGs
Re: perl script mit regulären ausdrücken
Posted: 2004-02-09 23:08
by sunx
ergänzung
push @alle_mails,"http://$1n";
das http hatte gefehlt.
und in datei schreiben
open FILE, ">ausgabe.txt";
print FILE @alle_mails;
close FILE;
Re: perl script mit regulären ausdrücken
Posted: 2004-02-10 17:45
by conym18
hi,
danke schonmal,
hab die datei in mein cgi-bin gelegt rechte der datei auf 700 gegeben und die chat.txt auch in das gleiche verzeichnis.
wenn ich es jetzt per browser aufrufe, kommt ein fehler und im suexec_log steht drin:
error: target uid/gid (636/101) mismatch with directory (636/101) or programm (0/0)
habe auch schon den richtigen pfad der beiden dateien (chat.txt und ausgabe.txt) reingeschrieben.
pfad zu perl stimmt auch.
was kann es sein?
Re: perl script mit regulären ausdrücken
Posted: 2004-02-10 17:51
by wgot
Hallo,
wie sind User und Group des Scripts? Identisch mit dem User in dessen Verzeichnis das Script liegt?
Gruß, Wolfgang
Re: perl script mit regulären ausdrücken
Posted: 2004-02-10 17:55
by conym18
reicht dir das?
[root@xxx cgi-bin]# ls -lah
total 208k
drwxr-xr-x 2 root root 4.0k Feb 10 17:35 .
drwxr-xr-x 8 web1 ftponly 4.0k Dec 29 19:00 ..
-rwxrwxrwx 1 root root 0 Feb 10 17:36 ausgabe.txt
-rwxr-xr-x 1 root root 197k Feb 10 17:34 chat.txt
-rwxr-xr-x 1 root root 435 Feb 10 17:51 script2.pl
was kann es sein?
Re: perl script mit regulären ausdrücken
Posted: 2004-02-10 18:02
by kase
Dein Script2.pl muss genauso wie die chat.txt web1:ftponly haben...
"man chown"
Re: perl script mit regulären ausdrücken
Posted: 2004-02-10 18:09
by conym18
hi,
script2.pl hat aber root.root und chat.txt auch root.root.
wieso dann web1:ftponly ?????
danke
Re: perl script mit regulären ausdrücken
Posted: 2004-02-10 18:13
by kase
Weil suEXEC das so haben will:
Code: Select all
error: target uid/gid (636/101) mismatch with directory (636/101) or programm (0/0)
Re: perl script mit regulären ausdrücken
Posted: 2004-02-10 18:16
by conym18
gleicher suexec fehler aber bei programm steht was anderes und fkt. immernoch nicht.
error: target uid/gid (636/101) mismatch with directory (636/101) or programm (636/101)
Re: perl script mit regulären ausdrücken
Posted: 2004-02-10 18:20
by wgot
Hallo,
der zugehörige Vhost (also letztlich die aufgerufene Domain bzw Subdomain) gehört web1:ftponly. Es ist die Aufgabe von suexec, daß in diesem Vhost nur Scripts ausgeführt werden können, die web1:ftponly gehören.
Einfach den Besitzer ändern:
chown web1:ftponly script2.pl
chown web1:ftponly chat.txt
und schon ist Dein Problem gelöst.
Wenn Du die Dateien mit FTP hochlädst, ist User und Group normalerweise automatisch richtig gesetzt. Vermutlich hast Du die Dateien direkt auf dem Server erzeugt und warst dabei als Root eingeloggt.
Gruß, Wolfgang
Re: perl script mit regulären ausdrücken
Posted: 2004-02-10 18:20
by kase
Hmm, komisch.
Auch wenn suEXEC im Log was anderes sagt, dein Verzeichnis sollte immer noch root:root gehören, und wird somit von suEXEC aus Sicherheitsgründen nicht ausgeführt:
Code: Select all
drwxr-xr-x 2 root root 4.0k Feb 10 17:35 .
Wobei . dein aktuelles Verzeichnis ist, indem deine beiden Files liegen.
Warum suEXEC meint, dass das Directory 636/101 also web1:ftponly hat, ist mir allerdings unverständlich.
Re: perl script mit regulären ausdrücken
Posted: 2004-02-10 18:22
by conym18
hi,
vielleicht ist das auch noch wichtig:
über der error zeile steht noch das:
info: (target/actual) uid: (web1/web1) gid: (ftponly/ftponly) cmd:script2.pl
und untendrunter immer die error zeile.
was kann es sein?
Re: perl script mit regulären ausdrücken
Posted: 2004-02-10 18:25
by kase
Nein, dies ist nur eine Info Zeile, und wie du selbst erkennen kannst, ist der Wert links vom / und der Wert rechts vom / in beiden Fällen identisch, und somit ok...
Hast du denn dem Verzeichnis mal die richtigen Rechte gegeben und probiert, obs geht ?
Re: perl script mit regulären ausdrücken
Posted: 2004-02-10 18:28
by wgot
Hallo,
läuft nur dieses Script nicht, oder läuft überhaupt keines?
Primitivtestscript:
Code: Select all
#!/usr/bin/perl
print "Content-type: text/htmlnn";
print "Hallo!";
Gruß, Wolfgang
Re: perl script mit regulären ausdrücken
Posted: 2004-02-10 18:30
by conym18
hi,
super, jetzt fkt. es im browser.
aber warum fkt. der inhalt des scriptes nicht?
warum gibt er mir bei "print @alle_mails;" nichts aus?
Code: Select all
#!/usr/bin/perl -w
print "Content-type: text/htmlnn";
open FILE, "</var/www/xxx/html/cgi-bin/chat.txt" or die $!;
@datei = <FILE>;
close FILE;
foreach $zeile(@datei){
#print $zeile;
if($zeile =~ m/([a-zA-Z0-9-.]{3,22}@[a-zA-Z0-9-.]+.[a-zA-Z]{2,3})/){
push @alle_mails,"http://$1n";
}
}
print @alle_mails;
#open FILE, ">/var/www/xxx/html/cgi-bin/ausgabe.txt";
#print FILE @alle_mails;
#close FILE;
danke
Re: perl script mit regulären ausdrücken
Posted: 2004-02-10 18:35
by conym18
nein anders gefragt.
ich habe folgenden wert in der caht.txt:
###
http://test.test.test
http://test@test.test
###
bei der
http://test@test.test schreibt er mir in die ausgabe.txt
http://test@test.tes
wo ist das "t" ??
was muß ich in dem script ändern?
danke
Re: perl script mit regulären ausdrücken
Posted: 2004-02-10 18:37
by conym18
dring habs, danke.
test hat 4 buchstaben und das script ist für drei.
danke für eure sehr gute hilfen.
conrad
http://www.ons-suche.net