Hallo *,
ich habe bis zu 500 von diesen *.csv Dateien in unterschiedlicher Größe.
Die nachfolgende Verarbeitung (3 Schritte) verarbeitet eine von mir vorgegebene Anzahl an Dateien.
Da momentan einzelne Dateien sehr groß (5 MB) sein können, verursachen Schritt 2 und Schritt 3 Probleme im Zielsystem.
Deshalb will ich alle Dateien in z. B. 1000 Zeilen große Teile zerlegen, wobei der neue Name Rückschlüsse auf den Ursprungsname beinhalten muss.
mein Erguss bisher:
Scripte 1:
#!/bin/sh
#set -x
zeile=20
file1="fibu*.csv"
ext=".csv"
Pref="X_"
file2="${Pref}*-*"
exec1="/home/kkadmin/zzz_work/split-me.sh"
exec2="/home/kkadmin/zzz_work/split-me_rename.sh"
#
find . -maxdepth 1 -name "$file1" -exec $exec1 {} $zeile $ext $Pref \;
#
find . -maxdepth 1 -name "$file2" -exec $exec2 {} $ext $Pref \;
Scripte2:
#!/bin/sh
datei=${1}
zeile=${2}
ext=${3}
pref=${4}
echo
echo "Parameter 1: $datei"
echo "Parameter 2: $zeile"
echo "Parameter 3: $ext"
echo
###
Prefix=$(basename $datei $ext)
Prefix="${pref}${Prefix}-"
split -l $zeile $datei $Prefix
rm $datei
Scipt 3:
#!/bin/sh
datei=${1}
ext=${2}
pref=${3}
###
datei=$(basename $datei)
datein=${datei##"$pref"}
mv $datei $datein$ext
Funktioniert unter Linux, unter AIX aber nicht (wegen maxdepth) und alles in einem Script wäre gut.
Dank und Gruss
klak
EDIT: mit entsprechenden Vorbereitungen geht es natürlich auch ohne maxdepth.