Strings durchsuchen, ausschneiden

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Spooky@work, 05.04.2006.

  1. #1 Spooky@work, 05.04.2006
    Spooky@work

    Spooky@work Grünschnabel

    Dabei seit:
    05.04.2006
    Beiträge:
    3
    Zustimmungen:
    0
    Hallo Zusammen,

    ich habe folgendens Problem: Ich habe in einer Variable immer eine Zeichenkette, aus der ich Werte ausschneiden will.

    z. B.: Rechnername: Speichernutzung State: CRITICAL Wed Apr 5 09:41:04 CEST 2006 Info: CHECK_NRPE: Socket timeout after 10 seconds.

    Aus diesem String möchte ich nun Rechnername ausschneiden. Also alles bis zum doppelpunkt. Wie kann ich das machen? Mit sed habe ich es schon versucht aber nicht hinbekommen, mit cut kann ich es nicht machen, da die Rechnernamen nicht immer gleich lang sind.

    Ich denke es muss mit sed gehen, bin aber gerade zu blöd. :(
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Wolfgang, 05.04.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Du kannst es mit cut machen, wenn der Rechnername immer an der gleichen Stelle steht und keinen Doppelpunkt enthält.
    Code:
    MYNAME=$(cut -d":" -f1 inputfile);
    echo $MYNAME;
    
    Mit sed geht es genauso wie mit perl oder ....

    Code:
    MYNAME=$(sed -e 's!:.*!!g inputzeile)
    
    Gruß Wolfgang
     
  4. #3 Spooky@work, 05.04.2006
    Spooky@work

    Spooky@work Grünschnabel

    Dabei seit:
    05.04.2006
    Beiträge:
    3
    Zustimmungen:
    0
    Danke für die schnelle Hilfe Wolfgang.

    Ich glaube mit cut ist es nicht so gut, da der Rechnername (oder besser Rechnerbezeichnung) auch Leerzeichen enthalten kann.

    Das sed Kommando das du gepostet hast funktioniert nicht, blick da im moment gar nicht durch. Ich kenne mich mit sed noch nicht sooo aus, ich hätte es so gemacht, aber funktioniert halt nicht:

    SERVER=$(echo $msgtext | sed -r s/':*'//)

    Kannst du Dein sed Kommando von Dir nochmal kurz erläutern?

    Gruß Christian
     
  5. Cyber

    Cyber .:DISTORTED:.

    Dabei seit:
    16.05.2003
    Beiträge:
    999
    Zustimmungen:
    0
    Ort:
    D -> BW -> Karlsruhe
    Dann halt eifnach
    Code:
    MYNAME=$(cut -d":" -f1 inputfile);
    echo "$MYNAME";
    
     
  6. #5 Wolfgang, 05.04.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    cut funktioniert auch mit Leerzeichen im Namen. Das Trennzeichen wurde ja mit -d ":" als Doppelpunkt festgelegt.
    Ich vermute mal eher, dass deine Variable im Nachgang (der weiteren Verarbeitung) am Leerzeichen abgetrennt wird.

    Auch der sed Befehl funktioniert.
    Code:
    $ echo "NAME mit Leerzeichen: Feld mit mehr Zeichen auch Doppelpunkt:"|sed -e 's/:.*//g'
    [i]NAME mit Leerzeichen[/i]
    
    Der sed löscht (ersetzt mit Nichts) nur alle Zeichen die nach einem Doppelpunkt folgen, und gibt alles davor aus.

    Wenn der Name nun Leerzeichen enthält. solltest du den bei der Weiterverarbeitung immer quoten "$MYNAME"

    HTH
    Gruß Wolfgang
     
  7. #6 Schlaubi_fi.de, 06.04.2006
    Schlaubi_fi.de

    Schlaubi_fi.de Mac OS X User

    Dabei seit:
    22.12.2004
    Beiträge:
    304
    Zustimmungen:
    0
    Moin,
    fehlt da nicht ein einfaches Hochkomma?

    Code:
    MYNAME=$(sed -e 's!:.*!!g[b]'[/b] inputzeile)
     
  8. #7 Wolfgang, 06.04.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Jo, ist im ersten Posting untergegangen.

    Gruß Wolfgang
    PS Wenn ich dich nicht hätte... :D
     
  9. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  10. #8 Spooky@work, 06.04.2006
    Spooky@work

    Spooky@work Grünschnabel

    Dabei seit:
    05.04.2006
    Beiträge:
    3
    Zustimmungen:
    0
    Danke für euere Hilfe, es funktioniert jetzt!
     
  11. #9 Schlaubi_fi.de, 07.04.2006
    Schlaubi_fi.de

    Schlaubi_fi.de Mac OS X User

    Dabei seit:
    22.12.2004
    Beiträge:
    304
    Zustimmungen:
    0
    Och...wenn ich schon nicht mit Shellskript-Beispielen glänzen kann...versucht man es halt über die Rechtschreibschiene *lach* - nichts für ungut :brav:
     
Thema: Strings durchsuchen, ausschneiden
Besucher kamen mit folgenden Suchen
  1. unix ausschneiden

    ,
  2. string ausschneiden unix

Die Seite wird geladen...

Strings durchsuchen, ausschneiden - Ähnliche Themen

  1. Dateien nach Strings durchsuchen

    Dateien nach Strings durchsuchen: Hallo zusammen, ich möchte gerne mehrere Dateien (mehrere hundert Dateien mit stark verzweigter Verzeichnisstruktur) nach einem gewissen Inhalt...
  2. alles außer letzte 4 strings

    alles außer letzte 4 strings: Hallo, ich habe verschieden lange Strings (Dateinamen) und möchte gerne den Dateinamen als Variable ausgeben: 1. Strings...
  3. Mehere Strings aus unterschiedlichen Zeilen zusammenführen

    Mehere Strings aus unterschiedlichen Zeilen zusammenführen: hi@all, stehe vor einem Problem und habe keine Ahnung wie ich vorgehen kann. Folgende Aufgabenstellung: Ich habe eine große Text Datei und...
  4. Hilfe bei bash - Shellscript gesucht: zusammengehörende Strings in Konfigdatei

    Hilfe bei bash - Shellscript gesucht: zusammengehörende Strings in Konfigdatei: Hallo zusammen, bin leider noch kein Skript-Guru, das folgende Problem wird wohl sehr in die Tiefen von substr, split, regulären Ausdrücken...
  5. Mit sed zwei strings pro zeile ausgeben

    Mit sed zwei strings pro zeile ausgeben: hi@all, hab mal ne frage zu sed: Folgende Zeile: 15.07.2009 09:36:44:129 ? 2 ? ? <-...