wie extrahiere ich bestimmte textteile aus einer datei?

Bash, Shell, PHP, Python, Perl, CGI
headstartforhappiness
Posts: 4
Joined: 2003-05-31 11:44

wie extrahiere ich bestimmte textteile aus einer datei?

Post 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
majortermi
Userprojekt
Userprojekt
Posts: 916
Joined: 2002-06-17 16:09

Re: wie extrahiere ich bestimmte textteile aus einer datei?

Post by majortermi »

man grep
und vielleicht auch
man awk
Erst nachlesen, dann nachdenken, dann nachfragen... :)
Warum man sich an diese Reihenfolge halten sollte...
deanwickert
Posts: 77
Joined: 2003-05-13 23:20
Location: Lahnstein

Re: wie extrahiere ich bestimmte textteile aus einer datei?

Post 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.
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten

Re: wie extrahiere ich bestimmte textteile aus einer datei?

Post by captaincrunch »

Da kommen die PHPler wieder aus den Löchern hervorgekrochen ... und das, wo es mit einem Shell-Einzeiler getan gewesen wäre ... ;)
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
olaf.dietsche
Posts: 401
Joined: 2002-12-19 02:06
Location: Siegburg

Re: wie extrahiere ich bestimmte textteile aus einer datei?

Post 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/$/;/'
deanwickert
Posts: 77
Joined: 2003-05-13 23:20
Location: Lahnstein

Re: wie extrahiere ich bestimmte textteile aus einer datei?

Post 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! :wink:
headstartforhappiness
Posts: 4
Joined: 2003-05-31 11:44

Re: wie extrahiere ich bestimmte textteile aus einer datei?

Post 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