[Bash] Substring bilden

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Smokers, 26. Mai 2012 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 26. Mai 2012
    Substring bilden

    Hallöchen,

    is ne gaaaaanze Weile her das ich mal was mit Bash zu tun hatte,
    ... ist leider schwer zu googlen.

    Ich habe folgende Befehle :

    Code:
    timestamp=$(date +%s | md5sum)
    mkdir ${timestamp:-4}
    
    Leider funktioniert das Substring erstellen nur bedingt. Es werden mir 2 Ordner erstellt. Einmal der md5sum vom timestamp, den den ich haben will, sowie nen Ordner mit dem Bindestrich der im output von md5sum 'xxxx' immer vorkommt.

    Diesen wollte ich per :-4 wegschneiden. Jedoch scheint mir das Substring bilden nen Array aus dem Teil zu machen oder irgendwas, jedenfalls werden immernoch 2 Ordner erstellt (oder mkdir aktzeptiert Ordnerauflistungen und es wird GARKEIN Substring gebildet )

    Kann mir da jemand kurz weiterhelfen?

    Lg und Danke
     
  2. 26. Mai 2012
    AW: Substring bilden

    Code:
    date +%s | md5sum | awk '{ print $1 }'
    
    Gibt bestimmt schönere Wege als awk, aber ich benutz es einfach gern

    Off-Topic:
    Gibt es nen Grund dass du nen Hash erstellen willst ? Imho wäre "date +%s" doch schon eindeutig genug, oder nicht ?
     
  3. 26. Mai 2012
    AW: Substring bilden

    ja nur das nich jeder sehen muss wann ich den ordner erstellt habe ;D
    außerdem wird die zeichenkette so etwas länger und undurchsichtiger.

    okay dank dir, funktioniert ;-)

    //irgend ne idee warum meins so nich geklappt hatte ?hatte ne anleitung gefunden :
    http://tldp.org/LDP/abs/html/string-manipulation.html

    eigentlich nix anderes oder?
     
  4. 27. Mai 2012
    Zuletzt bearbeitet: 27. Mai 2012
    AW: Substring bilden

    Hm. Bin mir nicht sicher. Vielleicht liegts an der shell die man verwendet.

    Code:
    ${timestamp:1:32}
    
    Das funktioniert jedoch

    Wenn du aber "von rechts" kommen willst, muss du die Zahl in Klammern setzen:

    Code:
    ${timestamp:(-4)}
    
    Aber das würde nur die letzten 4 Zeichen deines Strings nehmen, und nicht die letzten 4 abschneiden.
    Ich denke mit der awk-Variante fährst du am besten. Aber da nen md5-hash wiederum eine konstante länge hat, könntest du auch obiges nutzen.
     
    1 Person gefällt das.
  5. 27. Mai 2012
    AW: Substring bilden

    ich danke dir ;-)

    liet sicher an der bourne shell
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.