Announcement

Collapse
No announcement yet.

UNIX Shell sed zwei Zalen aus einer Variabel holen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • UNIX Shell sed zwei Zalen aus einer Variabel holen

    Guten Abend,

    ich kämpfe nun schon eine weile damit, aus einem String zwei Werte zu holen.

    Code:
    VAR_TEST="User= 10 Port=1"
    
    NUMBER_USER='echo $VAR_TEST  | sed 's/[0-9]*/& &/'
    #NUMBER_USER sollte 10 sein
    
    NUMBER_PORT='echo $VAR_TEST  | sed 's/[0-9]*/& &/'
    #Sollte 1 sein
    ich würde nun gerne aus dem String einmal den Wert für den User holen und einmal den wert für dem port Port.

    Leider habe ich keine Ahnung wie ich das in einem Unix Shell script anstelle.
    Versuche es nun seit Stunden. Gehe ich das falsch an?

    Ah ja ich verwende ksh.

    Danke
    Sonic

  • #2
    Du musst die Zuweisung zwischen zwei "Accent grave" (Backquote) schreiben, da du das Ergebnis in die Variable schreiben möchtest und nicht den Text.

    Steht die Zahl hinter dem User immer zwischen zwei Leerzeichen?
    Wenn ja, kannst du es so machen:

    Code:
    $ VAR_TEST="User= 10 Port=1"
    $ NUMBER_USER=`echo $VAR_TEST | awk -F" " '{print $2}'`
    $ echo $NUMBER_USER
    10
    $ NUMBER_PORT=`echo $VAR_TEST | awk -F= '{print $3}'`
    $ echo $NUMBER_PORT
    1
    $
    Gruss

    Comment


    • #3
      Klappt zum Teil

      Hallo Wernfried,

      "User =0 Port = 11"

      Den Port bekomme ich so raus nur den User nicht. Könntest du mir noch mal helfen?

      Danke

      Comment


      • #4
        Geht es so (nicht getestet)?

        Code:
        $ NUMBER_USER=`echo $VAR_TEST | sed 's/Port//' | sed 's/User//' | awk -F= '{print $2}'`
        
        $ NUMBER_PORT=`echo $VAR_TEST | sed 's/Port//' | sed 's/User//' | awk -F= '{print $3}'`
        Gruss

        Comment

        Working...
        X