Variable bearbeiten

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von drm, 16.05.2007.

  1. drm

    drm Eroberer

    Dabei seit:
    29.08.2006
    Beiträge:
    59
    Zustimmungen:
    0
    Hallo,
    wie löse ich folgendes Problem:
    Ich habe eine Variable $test, dahinter verbirgt sich z. B. Esel&Elefant.

    1) Wie mache ich aus Esel&Elefant ein Esel_Elefant (Sonderzeichen umwandeln in einen Unterstrich)???

    2) Wie speicher ich z. B. $test mit dem Inhalt Esel&Elefant in eine neue Variable, in der dann nur Elefant steht (evtl. durch ausschneiden...)???

    Vielen Dank für eure Hilfe :-)
     
  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 supersucker, 16.05.2007
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Das kannst du elegant mit "sed" machen.

    Dafür würde ich "cut" nehmen.

    -> google mal nach sed und cut, da findest du sehr viele Beispiele.
     
  4. #3 aktivfrühstück, 16.05.2007
    aktivfrühstück

    aktivfrühstück Eroberer

    Dabei seit:
    19.03.2007
    Beiträge:
    66
    Zustimmungen:
    0
    $test='esel&elefant';
    @test=split('&', $test);
    $test=@zahlen[0];
    #----
    $test=join('_',@test);


    so sollte es auch gehen:-)
     
  5. #4 supersucker, 16.05.2007
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Nein.

    1. Ging es um Bash und nicht um Perl oder sonstwas.

    2. Ist

    wohl __mehr__ als nur umständlich.

    3. Ging es hier darum, wie man so etwas allgemein löst.
     
  6. #5 drm, 16.05.2007
    Zuletzt bearbeitet: 16.05.2007
    drm

    drm Eroberer

    Dabei seit:
    29.08.2006
    Beiträge:
    59
    Zustimmungen:
    0
    Mmh, nach cut habe ich geschaut, aber irgendwie habe ich das Gefühl dass ich damit immer nur zeilenweise etwas aus einer Datei ausgeben kann. Das ist nicht mein Ziel, ich möchte in dem gleichen Shell-Skript von einer Variablen $test z. B. die Zeichen 5-10 ausschneiden... und zwar in eine neue Variable!

    Zu sed: Hat vielleicht jemand ein Beispiel dafür?
     
  7. #6 Wolfgang, 16.05.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Mit der bash:
    Varablenexpansion ;)


    Gruß Wolfgang
     
  8. drm

    drm Eroberer

    Dabei seit:
    29.08.2006
    Beiträge:
    59
    Zustimmungen:
    0
    @Wolfgang: Nutze die ksh, leider klappt dein Tausch von & zu _ damit nicht :-(

    Gibt's nicht eine einfache Standardlösung wie man so ein kleines Problem lösen kann, in php wäre das z. B. nicht so ein Akt...
     
  9. #8 Wolfgang, 16.05.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Schön, dass wir nun wissen worüber wir reden. ;)

    Aber du kannst für einzelne zeichen auch gut mit tr arbeiten.

    Code:
    var="test&test"
    var2=$(echo $var|tr "&" "_")
    echo $var2
    test_test
    
    Gruß Wolfgang
     
  10. drm

    drm Eroberer

    Dabei seit:
    29.08.2006
    Beiträge:
    59
    Zustimmungen:
    0
    Bekomme es bei mir unter der ksh mit dem tr nicht ans Laufen...
    Habe zwischen dem Pipe schon Leerzeichen gesetzt, aber es erfolgt keine Ausgabe.

    @Wolfgang: Hast du noch eine Idee wie ich das ksh-konform anpassen kann?
    Wir wissen ja jetzt worüber wir reden ;-)
     
  11. #10 Wolfgang, 16.05.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Was hast du versucht, und was war das Ergebnis?

    Code:
    $ var=test&test
    $ echo ${var} |tr "&" "_"
    test_test
    echo ${var} |sed -e 's/[&]/_/g'
    test_test
    
    Was da bei dir falsch läuft, kann ich von hier aus nicht sehen.

    Gruß Wolfgang
     
  12. drm

    drm Eroberer

    Dabei seit:
    29.08.2006
    Beiträge:
    59
    Zustimmungen:
    0
    Hi Wolfgang,
    versucht habe ich dein Beispiel 1 zu 1 umzusetzen...
    Code:
    var="test&test"
    var2=$(echo $var|tr "&" "_")
    echo $var2
    test_test
    
    Einen Fehler erhalte ich nicht, das Problem... eine Ausgabe auch nicht.
     
  13. #12 Wolfgang, 18.05.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Dann solltest du mal versuchen das & zu escapen, oder in einfache Hochkomma setzen.

    Code:
    var="test&test"
    echo $var
    var='test&test'
    echo $var
    var="test\&test"
    echo $var
    
    
    Was kommt da bei dir raus?
    Code:
    var="test&test"
    var2=$(echo $var|tr '&' '_')
    echo $var2
    
    Wolfgang
     
  14. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  15. #13 neutrino1, 18.05.2007
    neutrino1

    neutrino1 Mitglied

    Dabei seit:
    03.05.2005
    Beiträge:
    30
    Zustimmungen:
    0
    Hab's grad auf der ksh ausprobiert, sollte eigentlich klappen:

    Code:
    > VAR1="Esel&Elefant"
    > echo ${VAR1%&*}
    Esel
    > echo ${VAR1#*&}
    Elefant
    > echo ${VAR1%&*}_${VAR1#*&}
    Esel_Elefant
    
     
  16. drm

    drm Eroberer

    Dabei seit:
    29.08.2006
    Beiträge:
    59
    Zustimmungen:
    0
    Moin,
    wollte eine kleine Rückmeldung geben, und zwar hat Wolfgang mein Problem hiermit gelöst:
    Code:
    var="test&test"
    var2=$(echo $var|tr '&' '_')
    echo $var2
    
    Vielen Dank dafür!!! Mein Skript läuft jetzt optimal :-)
     
Thema:

Variable bearbeiten

Die Seite wird geladen...

Variable bearbeiten - Ähnliche Themen

  1. Linux 4.5 will UEFI-Variablen besser schützen

    Linux 4.5 will UEFI-Variablen besser schützen: Das Löschen bestimmter UEFI-Variablen kann manche Rechner nicht mehr startbar machen. Das kommende Linux 4.5 ergreift Maßnahmen dagegen, die im...
  2. Wie komme ich an den Inhalt des Inhalts einer Variable?

    Wie komme ich an den Inhalt des Inhalts einer Variable?: Hallo Zusammen, ich möchte meine Buildumgebung vereinfachen und besser zu automatisieren. Ein Skript schreibt Pfade in die env und diese...
  3. Textdatei zeilenweise in durchnummerierte Variablen schreiben

    Textdatei zeilenweise in durchnummerierte Variablen schreiben: Hi Leute, ich versuche folgendes Problem zu lösen. Ich möchte eine Textdatei einlesen und den Inhalt jeder Zeile in immer eine neue Variable...
  4. mysql Select Abfrageergebnis in unterschiedlichen Variablen sichern

    mysql Select Abfrageergebnis in unterschiedlichen Variablen sichern: Hallo zusammen, es geht um folgenden Teil meiner .sh-Datei: NumberCheck=`mysql $SQL_ARGS "SELECT lkw, Firma FROM adb_group WHERE...
  5. Teil einer Variablen auslesen und in neue Variable schreiben

    Teil einer Variablen auslesen und in neue Variable schreiben: Hallo, ist für Euch bestimmt ganz einfach, aber trotz googlen komme ich nicht auf eine Lösung. In Variable x habe ich stehen: xy,ab Nun möchte...