Arrgh,
sorry dass ich euch wahrscheinlich mit was Banalem belästige, bin aber gerade “Lost in HOWTO”.
Also, ich habe folgendes Problem:
Zum Background: Es geht um Klimadaten, die in einer bestimmten Form in einer Datei vorliegen.
Ich habe eine Textdatei mit über 2000 Zeilen. Diese 2000 Zeilen sind unterteilt in Blöcke a 12 Zeilen. In den Zeilen sind die Daten durch voneinander getrennt.
Was will ich nun?
Ich will, dass die Daten aus 12 Zeilen in eine Zeile geschrieben werden (also nach jeder Zeile der Zeilenumbruch entfernt wird) und dass nach jeder 12. Zeile eine neue Zeile beginnt.
Ich dachte an sed oder evtl. tr und habe herumprobiert, shellscripts geschrieben, manpages und howtos gelesen, bin dann aber irgendwie nicht weitergekommen und habe die Übersicht in den ganzen Tutorials verloren.
Also. wäre nett wenn jemand einen kleinen Tipp hätte, damit ich weiter rumfrickeln kann.
Dank im Voraus
Malte
Hi,
wenn Du perl nehmen kannst,. dann hab ich sowas da:
$ cat data
1 2 3
1 2 3
1 2 3
4 5 6
4 5 6
4 5 6
$ p2l -F” ” data
1 2 3 1 2 3 1 2 3
4 5 6 4 5 6 4 5 6
p2l — paragraph to line ist ein altes Script von mir:
#!/usr/bin/perl
# 1999 Erich Wälde — use as you like, but don’t blame me!
$Prog=$0;
$Prog=~s@.*/@@;
use Getopt::Std;
if ($ARGV[0] =~ /^-?-h(elp)?$/io)
{
print STDERR “usage: $Prog [-F ‘separator’]\n”.
“fold paragraphs separated by one blank line into one line\n”.
“the original lines are delimited with separator\n”.
“default separator is ^A (\\001)\n\a”;
exit 1;
}
$/=””; # switch to line buffering (not blocks)
getopt (“F:”);
$sep = $opt_F || “\001”; # Ctrl-A as default
while ()
{
chomp;
s/\n/$sep/og;
print “$_\n”;
}
Vielleicht hilft’s. Gruß, Erich