On 01.Sep 2003 - 01:34:40, J. Volkmann wrote: > Hallo Liste, > > ich habe folgende zwei Probleme, vor denen ich gerade ziemlich ratlos > stehe. Der Spaß sollte wenn es geht via Shellscript gelöst werden, da > ich das gerne in ein existierendes einbinden würde. > > a) Ich habe hier ~5500 Dateien verteilt auf viele Unterordner, bei > welchen er mir alle ausspucken soll die die exakt gleiche Größe haben.
Also wenn ich das richtig verstehe willst du jede Datei mit jeder anderen vergleichen? Das wird ziemlich aufwendig, mal davon abgesehen, das da ein Shellscript vielleicht nicht unbedingt das richtige ist. Das ist aber nicht allzu fix, schätze ich. Obwohl find ja da auch ziemlich gut cacht, denke ich. Man könnte das noch optimieren, indem man vor dem 2. find überprüft ob der aktuelle Dateiname schon einmal ausgegeben wurde. Das könnte dann so aussehen: list="" find -type f | while read f ; do if [[ ! $(echo $list | grep $f) ]] ; then echo "files with same size as $f:" list="$(echo -e "$list\n$f")" l1=$(find -type f -size $(ls -l $f | awk '{print $5}')c -print) for i in l1 ; do if [[ !$(echo $list | grep $i ) ]] ; then echo -e "\t$i" list=$(echo -e "$i\n$list") fi done fi done Wobei natürlich das innere find, nicht zu viele Dateien liefern darf, da sonst glaub ich die Bash meckert. (Sorry für die überlangen Zeilen) > b) In dem gleichen Dir soll er mir alle ausspucken welche den gleichen > Namen haben. Aber auch unabhängig von der Groß-/Kleinschreibung... analog oben aber beim inneren find dann natürlich: find -type f -iname $f > Irgendwie... bin ich da leicht ratlos? Mit find kann ich zwar nach > Größen suchen, mit diff kann ich Dateien vergleichen, aber irgendwie > wäre das doch sehr aufwendig? Was willst du denn mit diff, bei der Angelegenheit? Mir fällt grad noch ein, dass man das ls -l | awk durch einen passenden -printf Ausdruck bei find ersetzen kann. Und auch das echo -e "$(f|i)\n$list" könnte man anderweitig, z.B. durch einfache Zuweisung mit list=$(f|i):$list ersetzen, sofern die Dateien keinen : enthalten. Andreas -- Schlanke sind bloß zu doof zum Essen! -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)