Hallo Ralf, * Ralf Steck schrieb am 20.Apr.2000:
upxxxxxx.avc, ebenfalls je nach Datum. avp.set ist die "Steuerdatei", die dem Programm sagt, welche Defs er nehmen soll. , und sieht so aus:
avp0002.avcM script.avcM [...] malware.avcM eicar.avcM M ; 0XLSznpdI71fB300e7Uwj1HSjwVFWLu2L2qe671FqhyeFoNAPbvs+c8HtU
Das ist doch schon mal prächtig. Wenn immer nur die letzten beiden Zeilen stören, so nimm sie doch einfach raus. Du kannst sie aber auch einfach drin lassen, sie stören nicht.
Bleiben also in meinem Verzeichnis die überflüssigen avp0002.avc und die ganzen upxxxxxx.avc. Die aktuell benutzten Dateien stehen ja in der avp.set, also kann ich durch ein "ls minus avp.set" die Dateien rauskriegen, dioe ich löschen will. Problem: Die Dateien sind in
Aber genau das machst Du doch nicht. Du machst ein ls plus avp.set Wenn Du anschließend mit uniq drüber gehst, so machst Du aus doppeltem nur einfaches. Wenn Du es mit uniq machen willst, dann mußt Du uniq -u sagen. uniq -u nimmt alle Doppelten komplett heraus. $ cat test erste Zeile doppelte Zeile doppelte Zeile letzte Zeile $ uniq test erste Zeile doppelte Zeile letzte Zeile $ uniq -u test erste Zeile letzte Zeile Aber mit comm ist besser, da hier unterschieden wird, woher es kommt. Außerdem brauchst Du Deine avp.set gar nicht zu bearbeiten.
avp.set nicht sortiert, und da ist diese Leerzeile und die mit dem seltsamen "; 0XLSznpdI71fB300...", die beim Vergleich stören. Die *.klb, *.set usw., die mit ls rauskommen, will ich nicht löschen, müssen also ebenfalls gefiltert werden.
Ist schon klar. Aber jetzt kommt's mir. Ich hatte da auch einen Fehler. Es muß ls *.avc anstelle von einfach ls heißen.
Wenn ich deine Vorschläge also richtig auseinandersortiere, sollte ich weiterkommen mit einem
grep \.avp avp.set | recode ibmpc..lat1 | sort -u set-inhalt.txt
Hier fehlt ein > Du erzeugst eine Datei set-inhalt.txt. Das macht man nicht, indem man es am sort anhängt. sort ist ein Filter um Ausgabe kümmert sich sort nicht. Da grep und recode nich nötig sind, reicht ein ort -u avp.set > set-inhalt.txt Das -u ist auch schon überflüssig, da in avp.set nichts doppeltes vorkommt.
ls | grep \.avp |comm -23 - set-inhalt.txt | xargs rm -f
ls *.avc | comm -23 -set-inhalt.txt | xargs rm -f ist besser und einfacher.
Wie gesagt, ich hatte mit mit tar um das mehrfache Löschen rumgemogelt, aber so ists schöner.
Das mit tar verstehe ich nicht. Und wie gesagt, erst mal echo anstelle von rm, nicht das Du wegen einen dummen Fehler zuviel löschst. Wenn es mal stabil ist, kannst Du das mit dem echo wegmachen. Ach ja, wenn es in einem Shellskript ist, natürlich das rm ganz wegmachen, bzw auskommentieren. Du mußt noch eingreifen können, wenn er zuviel löschen will. Bernd -- Hast Du bei Problemen schon in der SuSE-Support-Datenbank (SDB) nachgesehen? Auf Deinem Rechner: file://usr/doc/susehilf/index.html | mit Apache: http://localhost/doc/susehilf/index.html | Zufalls- Tagesaktuell bei SuSE: http://sdb.suse.de/sdb/de/html/index.html | signatur 2 --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com