Das Skript ist eigentlich sehr simpel. Also, ich gehe mal davon aus, dass die Dateien analog zu den *.xls Dateien benannt sind. D.h. aus results.xls hast du results.csv, aus results(page_2).xls hast du results(page_2).csv erstellt usw. Du brauchst jetzt eigentlich nur zwei Befehle, und zwar den Befehl sed und den Befehl cat. Mit dem Befehl sed kann man unter anderem Zeilen löschen, mit dem Befehl cat kann man Dateien zusammenfügen. Das Löschen der Zeilen 2 bis 5 in der Datei Name.csv erledigt beispielsweise folgender Befehl:
Code:
sed "2,5d" Name.csv > Name.tmp
Dabei wird das Ergebnis in der Datei Name.tmp gespeichert. Mit "cat *.tmp > ergebnis.csv" (ohne "") kann man alle Dateien, die die Extension tmp haben aneinanderreihen und als ergebnis.csv abspeichern. Folgendes Skript kann man beispielsweise als Datei "skript.sh" speichern, was es macht steht drunter:
Code:
#!/bin/bash
sed "1,2d" result.csv > result.tmp
for i in ./result\(*\).csv
do
sed "1,3d" $i > "$(basename -s .csv $i).tmp"
done
cat result.tmp result\(*\).tmp > ergebnis.csv
rm *.tmp
Wenn man also im Terminal dieses Skript durch die Eingabe von "sh /Pfad/zum/Skript.sh" aufruft, passiert folgendes: Im aktuellen Verzeichnis wird bei der Datei result.csv die ersten beiden Zeilen entfernt und das Ergebnis als result.tmp gespeichert. Danach wird bei jeder Datei mit dem Namen result(*).csv (wobei * durch einen beliebigen String ersetzt werden kann) die ersten drei Zeilen gelöscht und das Ergebnis unter gleichen Namen nur mit der Extension tmp abgespeichert. Danach werden dann die Dateien in der richtigen Reihenfolge aneinandergereiht und als ergebnis.csv gespeichert. Zum Schluss werden noch alle Dateien mit der Extension im Verzeichnis gelöscht (um aufzuräumen).
Anmerkungen: Die ursprünglichen csv-Dateien werden nicht geändert, man kann das Skript also gefahrlos häufiger durchlaufen lassen ohne dass sich das Ergebnis ändert.
Vor dem Ausführen des Skripts muss man mit cd in das Verzeichnis mit den csv-Dateien wechseln, man kann das Skript aber auch anpassen, damit man ihm beim Aufruf das Verzeichnis als Parameter übergeben kann, aber das ist Geschmackssache. Wie viele Zeilen bei den einzelnen Dateien entfernt werden müssen, musst du selbst noch bestimmen und die entsprechenden Code-Zeilen dann manuell anpassen.
Du brauchst jetzt also nur noch einen Konverter, der dir aus den Excel-Dateien die csv-Dateien generieren kann. Am besten wäre natürlich ein Konverter, den man auch über das Terminal/Shell-Skripte verwenden kann, weil man dann die nötigen Aufrufe des Konverters einfach in dieses Skript mit einbauen kann.