Probleme mit variable

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von muemmi, 11.12.2006.

  1. muemmi

    muemmi Eroberer

    Dabei seit:
    14.12.2005
    Beiträge:
    65
    Zustimmungen:
    0
    hi

    eine Dumme Frage

    mit diesem befehl

    cat $datroh | awk -F"," '{for (I=1; I<NF; I++) print $I;}' > c:/qls/qls/kln/qsp/mischer/Daten_Um/datei.txt

    mach ich aus einer datei einzeilig eine mehrzeilige

    das klappt auch

    dummerweise ändert sich aber $datroh ständig und wenn ich den dateinamen am ende weglasse das läift es nicht mehr

    der inhalt von datroh wird so erzeugt:

    for datroh in $(find c:/qls/qls/kln/qsp/mischer/Daten -type f -name "Tank*"); do

    optimal wäre es man könnte eine neue variable erzeugen mit einem teil des inhaltes von datroh dir datei heist zum beispiel tank2688.tank

    ich bräuchte nur das 2688

    ich krieg es nicht hin

    hat einer eine tipp !

    danke
     
  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 Schlaubi_fi.de, 11.12.2006
    Schlaubi_fi.de

    Schlaubi_fi.de Mac OS X User

    Dabei seit:
    22.12.2004
    Beiträge:
    304
    Zustimmungen:
    0
    Welche Shell verwendest Du denn? *grübel*
     
  4. muemmi

    muemmi Eroberer

    Dabei seit:
    14.12.2005
    Beiträge:
    65
    Zustimmungen:
    0
    das teil heißt mkstoolkit und ist eine shell auf windows (ich wurde vom kunden gezwungen) reagirt aber auf fast alle befehle

    es hat sich bei mir rasukristalisiert das ich im prinzip nut eine string operation brauche

    sprich nehme die variable und schniede ein teil raus in ine neue und verbide sie mit einem neuen pfad

    da ich ein newbie bin fällt mir das schwer
     
  5. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Probier mal Folgendes

    Code:
    echo $datroh | sed -e 's/tank\(.*\)\.tank/\1/'
    Gruss, Xanti
     
  6. muemmi

    muemmi Eroberer

    Dabei seit:
    14.12.2005
    Beiträge:
    65
    Zustimmungen:
    0
    ähmmm

    was sollte passieren?

    er bringt nut das echo wieder der selben variablen!
     
  7. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Gibt er tank2688.tank oder 2688 zurück?
     
  8. muemmi

    muemmi Eroberer

    Dabei seit:
    14.12.2005
    Beiträge:
    65
    Zustimmungen:
    0
    jetz habe ich es

    es läuft

    wenn ich den befehl verstehen würde wäre das prima

    gibt es irgenwo eine deutsche befehlsreffrenz

    ist echt schwierig
     
  9. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Google mal nach "sed Tutorial" oder "man sed". Wenn dann noch Fragen sind, kannst Du hier fragen.
     
  10. muemmi

    muemmi Eroberer

    Dabei seit:
    14.12.2005
    Beiträge:
    65
    Zustimmungen:
    0
    ich hab jetzt noch weitergebastelt

    das tut es jetzt!

    for faxroh in $(find c:/qls/qls/kln/qsp/fax/log -type f -name "1_*"); do


    echo $faxroh | sed -e 's/1_1\(.*\)\.111/\1/'

    echo $faxroh

    done

    das spuckt er richtig aus: c:/qls/qls/kln/Qsp/Fax/LOG/05014

    nun hab ich es versucht für ein anders problem es abzuwandeln

    for faxroh in $(find c:/qls/qls/kln/qsp/fax/log -type f -name "*.$$$"); do

    und will dann die endung ".$$$" abschneiden damit ich es umbennen kann

    aber er liest das schon gar nicht in die schleife

    unabhängig davon wir dein sed-befehl es bestimmt nicht tun afür
     
  11. muemmi

    muemmi Eroberer

    Dabei seit:
    14.12.2005
    Beiträge:
    65
    Zustimmungen:
    0
    ICH HABBBBBBBBBBBBBBBBBBBBBBBBSSSSS


    for faxroh in $(find c:/qls/qls/kln/qsp/fax/log -type f -name "*.\$\$\$"); do


    echo $faxroh | sed -e 's/\.\$\$\$/\1/'

    echo $faxroh

    done

    das tut es !

    heißt die 1 am ende eigentlich löschen ?
     
  12. #11 Schlaubi_fi.de, 13.12.2006
    Schlaubi_fi.de

    Schlaubi_fi.de Mac OS X User

    Dabei seit:
    22.12.2004
    Beiträge:
    304
    Zustimmungen:
    0
    Was kommt für eine Fehlermeldung?

    Unabhänigig davon rate ich streng ab irgendwelche Code-Schnipsel zu verwenden, wenn man sie nicht versteht...da isses schonmal aus Jux & Dollerei vorgekommen, dass sich jemand seine Festplatte formatiert hat!
     
  13. muemmi

    muemmi Eroberer

    Dabei seit:
    14.12.2005
    Beiträge:
    65
    Zustimmungen:
    0
    wie schon gesagt!

    es läuft ja jetzt...

    ABERRRRR

    wie bekomme ich den inhalt von:
    echo $faxroh | sed -e 's/\.\$\$\$/\1/' in eine variable

    hab schon mal was mit Export versucht, aber es klappt nicht!
     
  14. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  15. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Vorschlag für Deinen Code:

    Code:
    find c:/qls/qls/kln/qsp/fax/log -type f -name '*.$$$' | while read faxroh; do
      echo ${faxroh%.'$$$'}
      echo $faxroh
    done
    
    Mit while read werden auch die Files erschlagen, die Leerzeichen im Namen haben. Das ${..}-Konstrukt ist bash-eigen. Schau einfach, ob's bei Dir klappt. Die \1 ist eine Backreferenz und entspricht dem ersten zwischen \(..\) gefundenen String. Da Du aber kein \(..\) hast, ist \1 leer und damit wird gelöscht. Dies ist also nicht das, was man eigentlich will. Dein sed-Befehl sollte also idealerweise lauten:

    Code:
    sed -e 's/\.\$\$\$//'
    Bezüglich Deiner Variablen-Frage:

    Code:
    a=$(echo $a | sed ...)
     
  16. muemmi

    muemmi Eroberer

    Dabei seit:
    14.12.2005
    Beiträge:
    65
    Zustimmungen:
    0
    SUPER !!! LÄUFT

    hier das Ergebnis!

    find c:/qls/qls/kln/qsp/fax/log -type f -name '*.$$$' | while read faxroh; do
    echo ${faxroh%.'$$$'}
    echo $faxroh

    faxroh2=$(echo ${faxroh%.'$$$'})
    echo vari
    echo $faxroh2

    export faxneu=$faxroh2'.fax'

    echo $faxneu

    mv $faxroh $faxneu

    done


    er sucht die $$$ dateine und renamed sie

    Vielen Dank Xanti ind die anderen

    brauchst du einen job ?
     
Thema:

Probleme mit variable

Die Seite wird geladen...

Probleme mit variable - Ähnliche Themen

  1. grub-pc Probleme bei upgrade

    grub-pc Probleme bei upgrade: Hallo, ich habe beim dist-upgrade folgendes Problem: ---------- Nach dieser Operation werden 0 B Plattenplatz zusätzlich benutzt. Trigger für...
  2. Probleme mit YUM

    Probleme mit YUM: Hallo, ich habe CentOs 7 als Dualboot mit Windows 7 auf einen Dell Latitude E5510 installiert. Dies hat soweit auch alles geklappt. Leider habe...
  3. Forscher analysieren Durchsatzprobleme im Linux-Scheduler

    Forscher analysieren Durchsatzprobleme im Linux-Scheduler: Eine Gruppe von Forschern hat Fälle identifiziert, in denen der Scheduler im Linux-Kernel falsche Entscheidungen trifft und die CPUs nicht so gut...
  4. München: LiMux als Sündenbock für IT-Probleme?

    München: LiMux als Sündenbock für IT-Probleme?: Im Münchner Stadtrat soll später in diesem Jahr erneut über den Einsatz von Linux in der Stadtverwaltung diskutiert werden. Die Grünen vermuten,...
  5. BSI-Audit findet keine akuten Probleme in OpenSSL

    BSI-Audit findet keine akuten Probleme in OpenSSL: Das Bundesamt für Sicherheit in der Informationstechnik hat OpenSSL auf seine Sicherheit untersuchen lassen. Die Analyse zeigt vor allem, dass die...