Strings durchsuchen, ausschneiden

Diskutiere Strings durchsuchen, ausschneiden im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Hallo Zusammen, ich habe folgendens Problem: Ich habe in einer Variable immer eine Zeichenkette, aus der ich Werte ausschneiden will. z. B.:...

  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. #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
     
  3. #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
     
  4. 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";
    
     
  5. #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
     
  6. #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)
     
  7. #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
     
  8. #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!
     
  9. #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. linux string suchen ausschneiden

    ,
  2. bash zeichen bis zum ausschneiden

    ,
  3. shell text ausschneiden

    ,
  4. textbereich ausschneiden mit sed,
  5. ausschneiden von bis mit sed,
  6. linux text ausschbeiden,
  7. string in bash beschneiden,
  8. unix ausschneiden,
  9. 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. Dateien in Unix finden, die mehrere Strings beinhalten

    Dateien in Unix finden, die mehrere Strings beinhalten: Hallo liebe Leute, ich versuche über die Shell unter Unix alle Dateien ausfindig zu machen, die sowohl den SuchstringA als auch den SuchstringB...
  3. 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...
  4. 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...
  5. 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...