tar-befehl output in Variable und perlscript übergeben!

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von legeti, 05.01.2007.

  1. legeti

    legeti Jungspund

    Dabei seit:
    19.10.2006
    Beiträge:
    23
    Zustimmungen:
    0
    Hallo zusammen,

    ich habe ein Problem::hilfe2:

    Ich habe ein shellscript, indem ich alle dateien, in einem Verzeichnis, eines bestimmten Typs, in ein tar archiv packe. Dieses tar archiv wird einem Perlskript übergeben das dies per Mail verschickt.
    Code:
    tar -cvf archiv.tar *.tmp
    Code:
    gzip -c archiv.tar > archiv.tar.gz
    ....
    Code:
    perl '/home/user1/mail.pl' archiv.tar.gz
    soweit so gut. Nun möchte ich das dem Perlscript noch die Dateinamen der Dateien die gepackt wurden übergeben wird. Meine Idee das ich den output vom tar-Befehl in eine Variable speicher, dann die 2. Spalte mit den Dateinamen ausschneide und dann als Parameter dem Perlscript übergebe.

    Ich bekomme das aber mit der Variable nicht hin!
    so zum Test dachte ich so:
    Code:
    tar -cvf archiv.tar *.tmp >$var_test
    Code:
    echo ${var_test}
    geht aber nicht. ohne $ legt er eine Datei an!

    Bitte um eure Hilfe!

    thanks
     
  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. Giglio

    Giglio Doppel-As

    Dabei seit:
    21.12.2006
    Beiträge:
    140
    Zustimmungen:
    0
    Hi, dann mach es folgendermaßen:

     
  4. dizzgo

    dizzgo Lernbereite Riesenratte

    Dabei seit:
    04.08.2005
    Beiträge:
    573
    Zustimmungen:
    0
    Ort:
    /ch/sg///
    Hallo
    Warum machst du nicht einfach vor dem 'tar'
    Code:
    files=$(ls *.tmp)
    echo "$files"
    
    Gruss
    d22
     
  5. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    oder einfach

    Code:
    var=$(tar -cvzf archiv.tar *.tmp)
    
    Eventuell ist es ratsam, die Ausgabe in einem Array zu speichern:

    Code:
    var=($(tar -cvzf archiv.tar *.tmp))
    
     
  6. #5 Wolfgang, 05.01.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Du solltest eventuell die Fehlerausgabe von tar nach /dev/null schieben,
    sonst bekommst du unter Umständen unerwartete Ergebnisse.
    2>/dev/null

    Nur so als Hinweis.
    Gruß Wolfgang
     
  7. legeti

    legeti Jungspund

    Dabei seit:
    19.10.2006
    Beiträge:
    23
    Zustimmungen:
    0
    Hallo,
    Vielen Dank schonmal. Habe aber noch Fragen.

    wegen der Umleitung in 2>/dev/null

    Code:
    tar -cvf archiv.tar *.csv >output
    das funktioniert nicht, ich bekomme nur den output wenn ich das so machen:
    Code:
    tar -cvf archiv.tar *.csv 2>output
    woran liegt das? 2> ist doch die Fehlerausgabe oder??

    der output sieht so etwas aus:
    Code:
    a blabla.csv 1 blocks
    was bedeutet a?

    Ich kann tar -cvzf nicht benutzen weil es auf HPUX läuft!

    Vielen Dank
     
  8. #7 Wolfgang, 05.01.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Sorry, Denkfehler von mir.
    Natürlich, tar verwendet ja die Fehlerausgabe für die Protokollierung.
    Du könntest aber alternativ die List-Funktion von tar benutzen, dann gehst du sicher nur den Inhalt zu bekommen. Bei GNU-tar ist das die Funktion -t.

    also
    Code:
     var=$(tar -tf archiv.tar)
    Gruß Wolfgang
     
  9. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  10. #8 neutrino1, 05.01.2007
    neutrino1

    neutrino1 Mitglied

    Dabei seit:
    03.05.2005
    Beiträge:
    30
    Zustimmungen:
    0
    Hi!

    Das a bei der Ausgabe bedeuted "added to archive", zum Auflisten eines TAR-Archivs benötigst du den Parameter t: tar -tf TARFILE.tar (HP-UX 11i Version 1).

    Code:
    > LIST=$(tar -cvf TARFILE.tar *tmp 2>&1|cut -d" " -f2)
    Code:
    > echo $LIST
    file1.tmp file2.tmp file3.tmp
     
  11. legeti

    legeti Jungspund

    Dabei seit:
    19.10.2006
    Beiträge:
    23
    Zustimmungen:
    0
    Vielen DANK!!!

    HI,

    Vielen Dank für eure SUPER Hilfe!!!

    Habe es jetzt hinbekommen!

    DANKE nochmals!:respekt:
     
Thema:

tar-befehl output in Variable und perlscript übergeben!

Die Seite wird geladen...

tar-befehl output in Variable und perlscript übergeben! - Ähnliche Themen

  1. Screen output in variable oder datei

    Screen output in variable oder datei: Hallo Unixvoard-Nutzer :winke:, Ich habe in screen eine konsole y offen und eine konsole x im hintergrund. Ich bin in konsole y und möchte an...
  2. Output an Zeilen in bestehendem file anhängen

    Output an Zeilen in bestehendem file anhängen: Hi ich hab ein Script, dass mir Adressen in einem file isoliert (hier stehen wirklich nur zahlen) danach läuft eine for Schleife durch in der die...
  3. Pulseaudio unter Debian multiple Output

    Pulseaudio unter Debian multiple Output: Hallo, ich habe ein Problem mit meinem Pulseaudio Server (0.9.21-3) unter Debian Squeeze. Und zwar habe ich eine Soundkarte mit analogem und...
  4. Output bearbeiten

    Output bearbeiten: Hallo Leute, kurze Frage: wie kann ich denn geschickt aus einer Datei, deren Inhalt etwa so aussieht: Harry Klaus Kurt eine Variable...
  5. Input /Output Error bei Customize Kit i.V.m Karmic Koala

    Input /Output Error bei Customize Kit i.V.m Karmic Koala: Hallo Ich habe folgendes Problem bei der Verwendung des Customize Kits (2.0.12) Der Vorgang statrtet ganz normal, wird jedoch nach einigen...