Page 1 of 1
wie extrahiere ich bestimmte textteile aus einer datei?
Posted: 2003-05-31 11:59
by headstartforhappiness
also, ich habe eine datei, in der völlig ungeordnet und inmitten anderer dinge (mit leerzeichen oder tabulator getrennt) immer wieder was in der art "beliebiglangertext@localhost" drinsteht. nun würde ich gerne alles links vom @ bis zum vorhergehenden leerzeichen plus das "@localhost" hintendran in eine neue datei, und zwar mit einem eintrag pro zeile und strichpunkt dahinter, schreiben.
aus:
abc blabla xyz test@localhost a@localhost cce
sollte quasi
test@localhost;
a@localhost;
werden.
wie stelle ich das an? mit welchen programmen kann ich das machen?
headstart
Re: wie extrahiere ich bestimmte textteile aus einer datei?
Posted: 2003-05-31 13:44
by majortermi
man grep
und vielleicht auch
man awk
Re: wie extrahiere ich bestimmte textteile aus einer datei?
Posted: 2003-05-31 13:50
by deanwickert
Also ich würde da schnell nen PHP-Script zusammenschrauben.
Code: Select all
<?php
$datei = "dateiname.txt";
$fp = fopen ($datei, "r");
$filesize = filesize ($datei);
$textfile = fread ($fp, $filesize);
$help = explode (" ", $textfile);
for ($n=0; $n<count($help); $n++) {
if (eregi (".{1,}@localhost", $help[$n])) {
$outputfile = "dateiausgabe.txt";
$open = fopen ($outputfile, "a");
fwrite ($open, "$help[$n];n");
fclose ($open);
}
}
?>
Habs nicht getestet, also keine Garantie, dass es läuft. Aber vom Prinzip her sollte es gehen.
Re: wie extrahiere ich bestimmte textteile aus einer datei?
Posted: 2003-05-31 16:26
by captaincrunch
Da kommen die PHPler wieder aus den Löchern hervorgekrochen ... und das, wo es mit einem Shell-Einzeiler getan gewesen wäre ... ;)
Re: wie extrahiere ich bestimmte textteile aus einer datei?
Posted: 2003-05-31 17:27
by olaf.dietsche
headstartforhappiness wrote:also, ich habe eine datei, in der völlig ungeordnet und inmitten anderer dinge (mit leerzeichen oder tabulator getrennt) immer wieder was in der art "beliebiglangertext@localhost" drinsteht. nun würde ich gerne alles links vom @ bis zum vorhergehenden leerzeichen plus das "@localhost" hintendran in eine neue datei, und zwar mit einem eintrag pro zeile und strichpunkt dahinter, schreiben.
aus:
abc blabla xyz test@localhost a@localhost cce
sollte quasi
test@localhost;
a@localhost;
werden.
wie stelle ich das an? mit welchen programmen kann ich das machen?
headstart
So oder so ähnlich sollte es gehen:
Code: Select all
tr -s '[:space:]' 'n' <datei | grep @ | sed -e 's/$/;/'
Re: wie extrahiere ich bestimmte textteile aus einer datei?
Posted: 2003-06-06 12:46
by deanwickert
CaptainCrunch wrote:Da kommen die PHPler wieder aus den Löchern hervorgekrochen ... und das, wo es mit einem Shell-Einzeiler getan gewesen wäre ... ;)
Dann eben:
Code: Select all
<?php
echo shell_exec ("tr -s '[:space:]' 'n' <datei | grep @ | sed -e 's/$/;/'");
?>
Bitte nicht schlagen!

Re: wie extrahiere ich bestimmte textteile aus einer datei?
Posted: 2003-06-11 15:05
by headstartforhappiness
heeyy :-), vielen dank für eure antworten! ich hätte nie gedacht, dass soviel und so aufwendig geholfen wird. ich werd damit was zusammenbasteln können, also DANKE nochmal!
headstart