1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Software und Anwendungen
  3. Betriebssysteme

sed negieren

    • Linux
  • schellness
  • 8. Januar 2004 um 17:00
  • Unerledigt
  • schellness
    3
    schellness
    Mitglied
    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
    16
    Zentor
    Mitglied
    Reaktionen
    5
    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
    28
    Jensi
    Mitglied
    Reaktionen
    141
    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
    3
    schellness
    Mitglied
    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
    28
    Jensi
    Mitglied
    Reaktionen
    141
    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
    3
    schellness
    Mitglied
    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.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung