Archiv verlassen und diese Seite im Standarddesign anzeigen : Shellscript -> Dateinamen
havingfun
27.06.2004, 19:55
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.
qmasterrr
27.06.2004, 20:19
welche shell benutzt du denn?
havingfun
27.06.2004, 20:28
Doch glatt vergessen: bash
qmasterrr
27.06.2004, 20:30
dann weiß ich es net
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.
havingfun
16.07.2004, 06:29
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 ...
bluelupo
16.07.2004, 09:30
Zeig mal die entsprechende Stelle im Script.
havingfun
16.07.2004, 13:55
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.
Du must / maskieren...\/, weil sed / als Tokenizer verwendet...
havingfun
16.07.2004, 15:41
Das mit dem maskieren hab ich schon gelesen, und soweit ich es verstehe, auch probiert.
Nur funktioniert es nicht. Denke ich mache irgendwas falsch?
bluelupo
16.07.2004, 16:07
Probiers das mit dem Datum mal isoliert:
sed 's/#datum/\/$datum/g' $cont > $backupdir/$cont
...bei funktioniert das.
havingfun
16.07.2004, 16:22
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.
Powered by vBulletin® Version 4.2.0 Copyright ©2013 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.