Shellscript -> Dateinamen

H

havingfun

Grünschnabel
Hallo

ich bin gerade dabei mich in die Shellprogrammierung einzuarbeiten und es klappt auch so halbwegs.
Nur stehe ich jetzt vor einem Problem (von bestimmt noch vielen ;) ).
Ich habe mittels rar mehrere Volumes erstellt von einem Plattenbackup. Diese ganzen einzelnen Dateien sollen nochmal einzeln gezipped/tared werden mit aktuellem Datum der als prefix übergeben werden soll.
Also aus der Datei backup_hde2.part1.rar soll be22706a.zip, aus backup_hde2.part2.rar soll be22706a.zip werden und so weiter.

Was ich halt wissen möchte, wie ich die zipfiles in diesem format erstellen lassen kann wobei be(fest)[prefix][a-z].zip sein muss.
 
Das Datum bekommst du z.B. mit:
date +%d%m
Beim Rest wird dir eventuell sed oder awk helfen.
Ich wuerde das ganze allerdings mit Perl machen, da ist es sicher viel einfacher.
 
Danke erstmal für die Antwort, hat geklappt.
Nun habe ich folgendes Problem:
Ich speichere die Datumsvariable in meinem Bashscript und will nun zusätzliche Dateien mit dem aktuellem Datum erstellen wofür ich sed benutze.
Dabei ist mir aufgefallen das ich kein / (slash) benutzen kann wenn ich die Variable an sed übergebe (mit anderen zeichen wie - funktioniert es). Woran liegt das?
Habe dazu eigentlich keine relevanten informationen gefunden ...
 
PHP:
datum=`date +%m-%d-%Y`
        

sed "s/#total/$total/g;s/#archivgroesse/$archg/g;s/#datum/$datum/g" $cont > $backupdir/$cont

Wobei alles funktioniert, nur wenn die - in datum durch / ersetze funktioniert es nicht mehr.
 
Zuletzt bearbeitet:
Du must / maskieren...\/, weil sed / als Tokenizer verwendet...
 
Das mit dem maskieren hab ich schon gelesen, und soweit ich es verstehe, auch probiert.
Nur funktioniert es nicht. Denke ich mache irgendwas falsch?
 
Probiers das mit dem Datum mal isoliert:
sed 's/#datum/\/$datum/g' $cont > $backupdir/$cont

...bei funktioniert das.
 
Das gleiche. sed beschwert sich immer über eine ungültige Option.
Hab das Problem anders gelöst da es nicht all zu wichtig war:

Habe die Variable Datum einfach aufgeteilt und in der zu schreibenden Textdatei: #datumt/#datumm/#datumj benutzt.
 
Zurück
Oben