Dateien nach Pruefsumme loeschen

K

Karlhans

Jungspund
Hallo,

ich habe ein Linux Kernel 2.6.20 und eine Bash mit den GNU tools. Ich moechte bestimmte Dateien mittels sha1sum Abgleich "Blacklisten".

Ich habe zwei Textdateien, "dateiliste" und "blackliste". In dieser Form:

"dateiliste"
Code:
374379d385622d435d40666d347698ba8ecc304d  /pfad/nach/blajh.dat
0d4145fcbc27bc30c220f14134a06a45ab918137  /pfad/nach/bla54.dat
d724e45b381fc8956eb292c0389c4378fba34563  /pfad/zu/kjsblajh.dat
17f66ac4dddc8ec1650cee7094d1c5d65d4b9554  /pfad/zu/blubjh.dat
20d6d307f9abdf265d9b65e0002e5fc2c7575100  /pfad/von/blh.dat
739869b572dfe4d91d01f6e66d7f30dd13d69164  /pfad/xyz/bfflajh.dat
e484815fb73a203553dbe6c85f319fa691677dae  /pfad/nopiu/kljd.dat


"blackliste"
Code:
d47adc5fd7df798ab363e6ff1f906aebd81d5086  /pfad/xjhg/bkijh.dat
17f66ac4dddc8ec1650cee7094d1c5d65d4b9554  /pfad/von/blubjh.dat
1f7282ffcdf906b5d453b9c270b02912bd8409d4  /pfad/jjj/jklfflajh.dat

Links sind die Pruefsummen und rechts der Pfad. In der "dateiliste" sind die Dateien die ich habe, in der "blackliste" sind die Pruefsummen der Dateien die ich nicht haben moechte. In der "blackliste" ist die Pruefsumme der 2. Zeile mit der 4. Zeile der "dateiliste" identisch, der Pfad jedoch nicht. Ich braeuchte nun ein script welches die Pruefsummen der beiden Listen vergleicht, doppelte findet und die dazugehoerigen Dateien laut den Pfadangaben der "dateiliste" loescht.

Also "/pfad/zu/blubjh.dat" soll geloescht werden.


Ich stehe da leider voll auf dem Schlauch. Mein Vorschlag waere, identische Pruefsummenzeilen der "dateiliste" mit "find" zu finden und in eine seperate Datei z.B. "doppelt" zu schreiben. Dann koennte mit "rm < "doppelt"" die Datei geloescht werden.

Ein anderer Ansatz waere mit "find (option) exec rm{}" die Datei direkt loeschen.


Koenntet ihr mir dabei Helfen? :)
 
Ungetestet:
Schreibe beide Dateien in eine, sortiere nach der Pruefsumme und benutze dann 'uniq -d' um die Zeilen herauszufischen, die doppelt vorkommen. Geht nur, wenn vorher in beiden Dateien jede Pruefsumme hoechstens einfach vorkommt. Und ich wuerde es vorher testen, bevor ich es auf die Dateien losliesse.
 
Danke fuer die Antwort, hab da mal was probiert. Es funktioniert auch:

Code:
cat blackliste >> liste && cat dateiliste >> liste
cat liste | sort | uniq -w 40 -d > doppelt

-w 40 wegen der laenge der Pruefsumme. Das wuerde so auch funktionieren.

Problem ist nur das Dateien doppelt vorkommen koennnen, das hab ich vergessen zu erwaehnen. Ich koennte das Script einfach zweimal durchlaufen lassen, aber das ist irgendwie unnoetiger Leistungsverbrauch.
 

Ähnliche Themen

Wie Dateien ohne Rückfrage löschen ?

Prblem mit zeilenweises auslesen von Datei und schreiben nach mysql

Bestimmte Dateien aus vielen Unterordnern löschen

Zeilenweise suchen, löschen und ersetzen / Inhalt einfügen

Dateien mit gleicher Größe löschen

Zurück
Oben