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)