Pro-Linux.de

Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 16. Dez 2018 19:25

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Datei erkennen und umbennen
BeitragVerfasst: 10. Jun 2005 8:50 
Hallo zusammen

Ich habe folgendes Problem:
Ich habe einen Ordner TEST
In diesem Ordner TEST gibt es einen Ordner SICHERUNG
In beiden Ordnern befindet sich eine Daeit mit selben,variablen Namen und immer gleicher Endung. (zb. 12345.tes)
Das skript sollte folgendes tun.
Es soll in beiden Ordnern nachgucken ob es identische Dateien gibt und dann im Ordner SICHERUNG die Dateiendung von *.tes auf *.sic ändern.

Wer kann mir helfen

Danke Carsten


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 10. Jun 2005 11:45 
Offline
prolinux-forum-admin
Benutzeravatar

Registriert: 05. Mai 2004 7:35
Beiträge: 1238
Bei kleinen Dateien geht das schnell. Bei größeren wird man vielleicht einen einfacheren checksum-Algorithmus verwenden wollen.
Code:
cd TEST

for file in $(find . -type f -maxdepth 1 -iname *.tes); do
  # Wenn die Sicherungsdatei existiert
  if [ -e SICHERUNG/"$file" ]; then
    # und die gleich Prüfsumme haben
    if [ "$(md5sum $file)" = "$(md5sum SICHERUNG/"$file")" ]; then
      # Erzeuge neuen Namen aus $file und ersetze ".tes" durch ""
      new_name = $( echo $file | awk ' { sub(".tes", "") } ' )
      mv SICHERUNG/"$file" SICHERUNG/"$new_name".sic
    fi
  fi
done
Dieses Skript tut ein bisschen mehr. Es wendet die besprochene Regel auf jede Datei im Verzeichnis an, die auf .tes endet. Es gibt dabei ein paar Probleme, welche du hier:
http://www.prolinux.de/forum/viewtopic.php?t=1028739
nachlesen kannst.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 10. Jun 2005 13:19 
Offline
Pro-Linux

Registriert: 24. Nov 1999 0:05
Beiträge: 389
Wohnort: Wörth am Rhein
Wie waere es, wenn wir einen Sticky-Thread hier machen wuerden, in den jeder seine Mini-Scripte posten kann. Wuerde wohl vor allem Anfaengern helfen, die Bash besser zu verstehen/nutzen. Natuerlich muessten die Aktionen aehnlich dem letzten Tipp kommentiert sein.

Gruss
demon


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 10. Jun 2005 16:00 
Offline
prolinux-forum-admin
Benutzeravatar

Registriert: 05. Mai 2004 7:35
Beiträge: 1238
<OT>
@demon: Ich finde die Idee gut.
</OT>


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 10. Jun 2005 20:47 
Offline

Registriert: 10. Sep 2004 14:37
Beiträge: 266
@Lateralus:
> Bei kleinen Dateien geht das schnell. Bei größeren wird man vielleicht einen einfacheren checksum-Algorithmus verwenden wollen.

hmm, aber md5sum muss ja auch die ganze datei durchlesen, da würde es mich wundern, wenn das schneller wäre als ein simples "diff".

_________________
"Email und Internet haben gemeinsam, dass sie beide in HTML geschrieben sind" (Peter Huth, TV-Computerexperte). Zitiert nach http://www.antihuth.de/


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 11. Jun 2005 11:21 
Offline
prolinux-forum-admin
Benutzeravatar

Registriert: 05. Mai 2004 7:35
Beiträge: 1238
@kanonenfutter
Hab ich nicht recht verstanden. Was ist nun schneller?

Ich bezog mich eher darauf, dass man Programme, wie sum oder cksum benutzen könnte, welche garantiert schneller als md5sum sind.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 11. Jun 2005 15:23 
Offline

Registriert: 10. Sep 2004 14:37
Beiträge: 266
@Lateralus:
> Hab ich nicht recht verstanden. Was ist nun schneller?
> Ich bezog mich eher darauf, dass man Programme, wie sum oder cksum benutzen könnte, welche garantiert schneller als md5sum sind.

und ich meinte, dass man überhaupt kein checksum-programm sondern einfach diff benutzen sollte ;-)
man müsste man das natürlich im einzelnen nachprüfen, aber generell kann man doch davon ausgehen, dass es *immer* langsamer ist, eine checksumme zu berechnen als nur das file anzuschauen. diff hat aber vor allem noch einen anderen vorteil: während du beim checksummen-bilden *immer* die ganze datei lesen musst, ist diff bereits beim ersten auftreten eines unterschieds fertig. das mag im vorliegenden fall keinen grossen unterschied machen, aber es spricht eben gar nichts dafür, eine checksumme zu verwenden.
mit diff wird die abfrage auch etwas einfacher:
Code:
 if diff -q $file SICHERUNG/$file; then

_________________
"Email und Internet haben gemeinsam, dass sie beide in HTML geschrieben sind" (Peter Huth, TV-Computerexperte). Zitiert nach http://www.antihuth.de/


Zuletzt geändert von kanonenfutter am 11. Jun 2005 17:45, insgesamt 1-mal geändert.

Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 11. Jun 2005 16:37 
Offline
prolinux-forum-admin
Benutzeravatar

Registriert: 05. Mai 2004 7:35
Beiträge: 1238
Gute Idee. Ich wusste gar nicht, dass diff eine Option besitzt, die nur darauf hinweist, dass ein Unterschied existiert und dadurch nicht die komplette Datei durchschauen muss.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 11. Jun 2005 17:17 
Offline

Registriert: 10. Sep 2004 14:37
Beiträge: 266
ok, du bist also mit meinem vorschlag einverstanden. damit würde das skript so aussehen (beachte: ich lasse die prüfung, ob die datei existiert weg, da diff das sowieso auch prüft).
Code:
#!/bin/bash
cd TEST/SICHERUNG

for file in *.tes; do 

    # gleiche dateien in beiden pfaden?
    if diff -q $file ../$file > /dev/null; then

        # Erzeuge neuen Namen aus $file und ersetze ".tes" durch "" 
         newname="$&#123;file%.tes&#125;.sic" 
         mv "$file" "$newname"
    fi 
done
oder wenn es etwas kürzer sein soll:
Code:
#!/bin/bash
cd TEST/SICHERUNG

for file in *.tes; do 

    diff -q $file ../$file > /dev/null && mv "$file" "$&#123;file%.tes&#125;.sic" 

done

_________________
"Email und Internet haben gemeinsam, dass sie beide in HTML geschrieben sind" (Peter Huth, TV-Computerexperte). Zitiert nach http://www.antihuth.de/


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 9 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de