Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Linux Forum Linux-Web.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

18.10.2006, 17:47

grep, Zeilenteil in Datei schreiben

Hallo,

ich möchte den Teil der Zeile in eine Datei schreiben der sich innerhalb von "=X-PHPSender-BounceId: " und "=" befindet. Dazu habe ich folgenden Code geschrieben:

Quellcode

1
grep "^=X-PHPSender-BounceId: \([.]*\)=$" noreply > test.txt


Habe bereits mehrere Varianten ausprobiert, aber es klappt einfach nicht.

Quellcode

1
grep "=X-PHPSender-BounceId:" noreply > test.txt


funktioniert!!! Es sind also Datensätze mit dem String vorhanden.

Was mache ich falsch?

renegade

macht was er will

  • »renegade« ist männlich

Beiträge: 2 842

Wohnort: Ostfriesland

Beruf: root

  • Nachricht senden

2

18.10.2006, 18:12

RE: grep, Zeilenteil in Datei schreiben

Sokrates (468 v.Chr. - 399 v.Chr.)
"Es ist keine Schande, nichts zu wissen, wohl aber, nichts lernen zu wollen."

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

3

18.10.2006, 23:16

RE: grep, Zeilenteil in Datei schreiben

grep und egrep (flexibler) leisten das auch, der pattern muss jedoch stimmen. in der Zeile dürfen sich nach deinem pattern keine weiteren zeichen befinden!!! der fehler liegt in deinem pattern. mach aus [.]* ein .*
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

bonsai

Prof.Dr. Klugschiss

  • »bonsai« ist männlich

Beiträge: 1 486

Wohnort: N.de

Beruf: Informatiker

  • Nachricht senden

4

19.10.2006, 12:31

oder..

...awk

evtl. auch "cut -d... -f..."

Kind regards,

Bernd
Die erste programmgesteuerte Rechenmaschine (Z1) wurde Mitte der 30er Jahre als "nicht patentwürdig" eingestuft. Warum versaut mir das Ding 50 Jahre später immer noch den Tag?

5

19.10.2006, 14:59

... jetzt will ich auch noch =D

@bonsai
cut erlaubt nur ein einzelnes zeichen [-d'Z'] als trenner

hi bweichel,

so geht's:

Quellcode

1
cat file | awk -F'=X-PHPSender-BounceId:' '{print $2}' | awk -F'=' '{print $1}' > file_out
gruß epikur
wie soll ich wissen, was ich denke?
... bevor ich hoere, was ich sage
... bevor ich lese, was ich schreibe

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »epikur« (19.10.2006, 15:01)


bonsai

Prof.Dr. Klugschiss

  • »bonsai« ist männlich

Beiträge: 1 486

Wohnort: N.de

Beruf: Informatiker

  • Nachricht senden

6

19.10.2006, 15:11

cut...

und das byte-weise trennen - was meistens reicht -- bzw. gibt es noch den "putzigen" Trenner-Tab, was in der Regel 8-Spaces => mehr als ein Zeichen ist.

Dann will ich aber auch: Nimm' Perl und vergiss' den ganzen Shellmist. :)

#!/usr/bin/perl

open FH,"[FILENAME";

@ALLES=<FH>;

foreach $line(@ALLES) {
if ($line =~ m/^=X-PHPSender-BounceId:(.*?)\=) {
print "$1\n";
}
}
close FH;

Bonsai
Rechthaber, Klugscheisser
Die erste programmgesteuerte Rechenmaschine (Z1) wurde Mitte der 30er Jahre als "nicht patentwürdig" eingestuft. Warum versaut mir das Ding 50 Jahre später immer noch den Tag?

Thema bewerten