Logfile aufsplitten+zusammenfügen

Hallo zusammen,

ich habe ein logfile und möchte dieses nach dem bspw. zehnten zeichen einer zeile aufsplitten, so dass ich dann zwei dateien habe, eine mit den ersten zehn zeichen und die andere mit den restlichen zeichen in einer zeile.

dann möchte ich sie bearbeiten (ich weiß wie :smile: ) und danach wieder zusammenfügen, ist das irgendwie möglich???

Vielen Dank schonmal
Gruß
Sebi

Hi Sebi,
zum splitten nimmst du am einfachsten

cut

, also in etwa so:

cut -c1-10 infile \>infile.zeichen\_1\_bis\_10
cut -c11- infile \>infile.zeichen\_11\_bis\_rest

Zusammenbauen geht wohl am einfachsten über einen (auf die Schnelle zusammengebauten und ungetesteten Perl-Mehrzeiler):

perl -e '
open IN1, ")
{
 chomp $line1;
 $line2 = ; # Voraussetzung: Zeilenzahl in beiden 
 # Dateien gleich ...
 print $line1, $line2;
} ' infile.zeichen\_1\_bis\_10 infile.zeichen\_11\_bis\_rest

gruss
bernhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Danke Bernhard!!! Aber ich habe noch eine Frage, wenn ich dieses Skript dan ausführe, gibt der Rechner mir das Ergebnis auf der Konsole aus, wie kann ich das denn dann in einer neuen Datei speichern?
Vielen Dank für die schnelle Hilfe!

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Kompliziert!
Hi,

Zusammenbauen geht wohl am einfachsten

hast du einen Hang zur Verkomplizierung? :wink:

Ich würde ja mal versuchen:

j@linux:/tmp\> echo "123" \> 123.txt
j@linux:/tmp\> echo "456" \> 456.txt
j@linux:/tmp\> cat 123.txt 456.txt
123
456
j@linux:/tmp\> paste 123.txt 456.txt
123 456

Man beachte den nicht vorhandene Zeilenumbruch bei paste!

CU,
J~

Danke Bernhard!!! Aber ich habe noch eine Frage, wenn ich
dieses Skript dan ausführe, gibt der Rechner mir das Ergebnis
auf der Konsole aus, wie kann ich das denn dann in einer neuen
Datei speichern?

Das geht prinzipiell mit mit den Größer-als-Zeichen „>“

jb@linux:/tmp\> cat 123.txt 456.txt \> 123456.txt

CU,
J~

Danke es klappt!!! Gibt kein geileres Forum :smile:

Hi J~,

hast du einen Hang zur Verkomplizierung? :wink:

manchmal (ich mag Perl einfach :smile:

Ich würde ja mal versuchen:

Wieder mal was aus der Unix-Toolbox gelernt (kannte ich wahrscheinlcih schon irgendwann mal, habs aber wieder verdrängt).

j@linux:/tmp> echo „123“ > 123.txt
j@linux:/tmp> echo „456“ > 456.txt
j@linux:/tmp> cat 123.txt 456.txt
123
456
j@linux:/tmp> paste 123.txt 456.txt
123 456

Man beachte den nicht vorhandene Zeilenumbruch bei paste!

Bei mir generiert paste auch ein Linefeed (nach den Zeichen der jeweils letzten Datei). Dafür ist danach aber auch ein Default-TAB als Feldtrenner drin (dafür gibts dann aber wieder die -d Option).

CU,
J~

cu2
bernhard

Hallo zusammen,

Hi,

[logfile spaltenweise in Dateien aufteilen]
dann möchte ich sie bearbeiten (ich weiß wie :smile: ) und danach
wieder zusammenfügen, ist das irgendwie möglich???

Wie genau lautet das Problem?

Gruss vom Frank.