Re: Dateien per Bash-Script sortieren

From: Nils Krueger <nilz@hoschi.de>
Date: Fri May 26 2006 - 18:44:48 CEST

Hi Andreas!

Am Freitag, den 26.05.2006, 13:16 +0200 schrieb
lists@andreas-thomsen.de:
> Ich möchte 34000 Dateien sortieren. Das mach man wohl mit einem Script. :-)

Ich befürchte, dass es Leute gibt, die andere für sowas Geld geben, dass
die das manuell machen.

> Die Dateinamen haben folgenden Aufbau:
>
> KUNDE.TTMMJJJJ.SSMMss und optional: noch ein .Z
> und liegen in einem Verzeichnis in oder out.
>
> Die Länge von KUNDE ist leider variabel, und die Zahl Z am Ende kommt nur,
> wenn Dateien mit gleichem Zeitstempel existieren.

An der Stelle muss ich nachhaken. Ist Z nur eine Ziffer oder kann Z auch
mehrere Ziffern enthalten?

Wenn Z immer nur aus einer Ziffer besteht, ginge es so:

----------------------
# Format aller Dateien vereinheitlichen
# Dann kann man Zeit, Datum usw. von hinten immer gleich abzählen
for i in "in/*[0-9][0-9]"
do
  mv $i $i.X
done

for i in "in/*"
do
  JAHR=${i: -13:4}
  MONAT=${i: -15:2}
  TAG=${i: -17:2}

  mkdir -p ${i:3:${#i}-21}/in/$JAHR/$MONAT/$TAG
  mv $i ${i:3:${#i}-21}/in/$JAHR/$MONAT/$TAG/${i#in/}
done
------------------------

Wobei X dann die 0 sein könnte, falls die unbenutzt ist, oder ein
anderes an der Stelle unbenutztes Zeichen.

Das geht aber nur, wenn das Z nur genau ein Zeichen ist! Das Skript baut
darauf, dass es vom Ende die Position der Informationen abzählen kann.

Gruß,

Nilz.

-- 
http://nilz.hoschi.de

Received on Fri, 26 May 2006 18:44:48 +0200

This archive was generated by hypermail 2.1.8 : Fri May 26 2006 - 18:45:08 CEST