1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Software und Anwendungen
  3. Betriebssysteme

sed negieren

    • Linux
  • schellness
  • 8. Januar 2004 um 17:00
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • schellness
    Punkte
    45
    Beiträge
    6
    • 8. Januar 2004 um 17:00
    • #1

    Hallo,

    folgendes Problem.

    Ich habe eine Zeile die so aussieht...

    From test@test.de Mon DEC 4 16:08:50 MET 2003

    Nun habe ich einen sed Befehl, welcher mir das test zwischen dem @ und .de rauszieht. Ich möchte aber, dass er alles löscht außer das angesprochene test.
    Ich bekomme diese Mail von 3 verschiedenen Firmen und benötige das angesprochene als Eintrag einer Datenbank.

    Wie kann ich den sed Befehl negieren?

    schellness

  • Zentor
    Punkte
    2.710
    Beiträge
    506
    • 8. Januar 2004 um 17:18
    • #2

    Poste doch die sed-Zeile, dann kenn ich mich besser aus.
    generell: http://www.downloadfreetrial.com/linux/abs-guide/x14889.html
    mfg Zentor

  • Jensi
    Punkte
    8.486
    Beiträge
    1.649
    • 8. Januar 2004 um 17:54
    • #3

    Deine Problembeschreibung verwirrt mich auch sehr, aber diese Zeile solltest Du eigentlich leicht so anpassen können, daß sie das macht, was Du willst, was immer es auch ist:

    Code
    echo "From [email]test@test.de[/email] Mon DEC 4 16:08:50 MET 2003" | sed -e 's/\(.*\)@\(.*\)\(.de.*\)/\1/g'

    Mit \1 kriegst Du bei diesem Beispiel: "From test"
    Mit \2 kommt: "test" (das zwischen dem @ und dem .de)
    Mit \3 kommt: ".de Mon DEC 4 16:08:50 MET 2003"

    Falls Du alles außer dem "test" in der Mitte willst (so verstehe ich Deine Frage am ehesten), könntest Du das so machen:

    Code
    echo "From [email]test@test.de[/email] Mon DEC 4 16:08:50 MET 2003" | sed -e 's/\(.*\)@\(.*\).de\(.*\)/\1\3/g'

    Dann hast Du: "From test Mon DEC 4 16:08:50 MET 2003"

    Hilft das?

  • schellness
    Punkte
    45
    Beiträge
    6
    • 9. Januar 2004 um 10:58
    • #4

    hallo,

    also ich wollte in der tat nur das test zwischen dem @ und dem .de haben. die mails würden von 3 verschiedenen absendern kommen

    1. blabla@agito.de
    2. tralala@discount24.de
    3. schubidu@mexx.de

    ich brauche für statistische auswertungen nur agito, discount24 oder mexx. der rest der zeile...

    From trallaaalalaaa@mexx.de Fri Jan 9 10:55:10 MET 2004

    ...soll entfernt werden. ich nutze inzwischen folgenden code...

    SHOP=`grep 'From' $INFILE | cut -d"@" -f2 | cut -d"." -f1`

    danke trotzdem für die bemühungen!!! :thumb:

  • Jensi
    Punkte
    8.486
    Beiträge
    1.649
    • 9. Januar 2004 um 12:20
    • #5

    Das wäre dann, der Vollständigkeit halber, das gewesen:

    Code
    sed -e 's/.*@\(.*\).de.*/\1/'
  • schellness
    Punkte
    45
    Beiträge
    6
    • 9. Januar 2004 um 12:26
    • #6

    :thumb: Na sollte noch wer ein derartiges problem haben, auswahlmöglichkeiten ohne ende. :lol:

  • Maximilian Rupp 27. Dezember 2024 um 12:10

    Hat das Thema aus dem Forum Betriebssysteme nach Betriebssysteme verschoben.

  1. Datenschutzerklärung
  2. Impressum