perl script mit regulären ausdrücken

Bash, Shell, PHP, Python, Perl, CGI
conym18
Posts: 137
Joined: 2003-01-21 12:41

perl script mit regulären ausdrücken

Post 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 ;)

 <!--&nbsp;<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

 <!--&nbsp;<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
flolein
Posts: 113
Joined: 2003-12-11 14:47

Re: perl script mit regulären ausdrücken

Post by flolein »

was für einen sinn hat http:// vor mail-adressen?
conym18
Posts: 137
Joined: 2003-01-21 12:41

Re: perl script mit regulären ausdrücken

Post 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
niklas_
Posts: 122
Joined: 2003-08-13 20:46

Re: perl script mit regulären ausdrücken

Post 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?
sunx
Posts: 4
Joined: 2002-09-22 13:37
Location: Braunschweig

Re: perl script mit regulären ausdrücken

Post 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
sunx
Posts: 4
Joined: 2002-09-22 13:37
Location: Braunschweig

Re: perl script mit regulären ausdrücken

Post 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;
conym18
Posts: 137
Joined: 2003-01-21 12:41

Re: perl script mit regulären ausdrücken

Post 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?
wgot
Posts: 1675
Joined: 2003-07-06 02:03

Re: perl script mit regulären ausdrücken

Post by wgot »

Hallo,

wie sind User und Group des Scripts? Identisch mit dem User in dessen Verzeichnis das Script liegt?

Gruß, Wolfgang
conym18
Posts: 137
Joined: 2003-01-21 12:41

Re: perl script mit regulären ausdrücken

Post 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?
kase
Posts: 1031
Joined: 2002-10-14 22:56

Re: perl script mit regulären ausdrücken

Post by kase »

Dein Script2.pl muss genauso wie die chat.txt web1:ftponly haben...

"man chown"
conym18
Posts: 137
Joined: 2003-01-21 12:41

Re: perl script mit regulären ausdrücken

Post by conym18 »

hi,

script2.pl hat aber root.root und chat.txt auch root.root.

wieso dann web1:ftponly ?????


danke
kase
Posts: 1031
Joined: 2002-10-14 22:56

Re: perl script mit regulären ausdrücken

Post 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)
conym18
Posts: 137
Joined: 2003-01-21 12:41

Re: perl script mit regulären ausdrücken

Post 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)
wgot
Posts: 1675
Joined: 2003-07-06 02:03

Re: perl script mit regulären ausdrücken

Post 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
kase
Posts: 1031
Joined: 2002-10-14 22:56

Re: perl script mit regulären ausdrücken

Post 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.
conym18
Posts: 137
Joined: 2003-01-21 12:41

Re: perl script mit regulären ausdrücken

Post 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?
kase
Posts: 1031
Joined: 2002-10-14 22:56

Re: perl script mit regulären ausdrücken

Post 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 ?
wgot
Posts: 1675
Joined: 2003-07-06 02:03

Re: perl script mit regulären ausdrücken

Post 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
conym18
Posts: 137
Joined: 2003-01-21 12:41

Re: perl script mit regulären ausdrücken

Post 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
conym18
Posts: 137
Joined: 2003-01-21 12:41

Re: perl script mit regulären ausdrücken

Post 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
conym18
Posts: 137
Joined: 2003-01-21 12:41

Re: perl script mit regulären ausdrücken

Post 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