Thomas Schwarze wrote:
Hallo Henning,
Ich brauche noch mal Eure Hilfe. Wie man eine Datei teilt bzw. splittet habe ich schon herausgefunden. Ich benutze den Befehl SPLIT im bash.
Dafuer gibts cat (=concatenate) cat infile1 infile2 ... > outfile
mich würde interessieren, wie ich Dateien zusammenfügen kann, wenn ich gleichzeitg am Anfang oder am Ende der einen oder anderen Datei eine bestimmte Anzahl von Bytes abschneiden möchte, um einen Header zu entfernen.
Da gibt's verschiedene Hilfsmittel ed -n 'x,yp' Gibt von einer Datei die Zeilen von ZeilenNummer x bis y aus. sed -n 'x,y!p' Gibt alle Zeilen, ausser denen von x bis y aus. sed -n 'xp' Gibt nur Zeile x aus sed -n 'x!p' Gibt alles ausser Zeile x aus tail -x Gibt nur die letzten x Zeilen aus head -x Gibt nur die ersten x Zeilen aus wc -l Gibt die Anzahl der Zeilen einer Datei an Wenn bei allen Dateien gleichermassen ein Footer und/oder ein Header weggelassen werden sollen, kann man die obigen Befehle ineiner Schleife abarbeiten und die Ausgabe in die gewuenschte Datei lenken Annahme bei allen Dateien im gegenwaertigen Verzeichnis sollen die ersten drei und die letzten zwei Zeilen abgeschnibbelt und das Ganze zu einer Datei zusammengesetzt werden, z.B.: beg=3 end=2 for i in *; do Lines=`cat $i | wc -l` sed -n $((beg+1)),$((Lines-end))p $i done > AusgabeDatei Damit wird weggelassen, was weggelassen werden soll und alles wird in AusgabeDatei geschrieben. Wenn diese Zahlen natuerlich nicht konstant sind, musst du vermutlich nach Zeilen mit bestimmten Inhalten suchen. Das geht natuelich auch, ist nur ein kleines bischen komplizierter Henning -- H. Henning Vossieck - h.vossieck@ndh.net - <A HREF="http://www.ndh.net/home/vossieck/"><A HREF="http://www.ndh.net/home/vossieck/</A">http://www.ndh.net/home/vossieck/ 49 2291 3010/6519 -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux