Hallo,
mal was dringendes (wenn's geht noch heute). Wie kann ich eine x-beliebige Zeile einer Datei zwecks Shellprogrammierung auslesen?
cu, Ulf
On Wed Jun 06, 2001 at 19:31:55 +0200, Ulf Lorenz wrote:
mal was dringendes (wenn's geht noch heute). Wie kann ich eine x-beliebige Zeile einer Datei zwecks Shellprogrammierung auslesen?
X. Zeile:
... | head -X | tail -1
Adam
On Wed, Jun 06, 2001 at 06:45:32PM +0200, Adam Lackorzynski wrote:
On Wed Jun 06, 2001 at 19:31:55 +0200, Ulf Lorenz wrote:
mal was dringendes (wenn's geht noch heute). Wie kann ich eine x-beliebige Zeile einer Datei zwecks Shellprogrammierung auslesen?
X. Zeile:
... | head -X | tail -1
Danke erstmal. Das sollte für meinen Bruder reichen :). Gibt es eigentlich noch eine andere Möglichkeit? Die Datei, die hier zeilenweise ausgelesen werden soll, enthält Meßwerte und ist ziemlich groß (>1MB soweit ich weiß), damit wird das mit der Zeit ineffizient (auch wenn der größte Teil der Rechenzeit von einem Fortranprogramm geschluckt werden dürfte, daß mit diesen Daten dann ziemlich umständlich gefüttert wird).
Adam
Ulf
Hi Ulf,
On Wed, Jun 06, 2001 at 21:36:03 +0200, Ulf Lorenz wrote:
Gibt es eigentlich noch eine andere Möglichkeit? Die Datei, die hier zeilenweise ausgelesen werden soll, enthält Meßwerte und ist ziemlich groß (>1MB soweit ich weiß), damit wird das mit der Zeit ineffizient
Wenn Du die Datei Zeile fuer Zeile auslesen willst (also nicht wild zwicshen den Zeile umherspringen), dann reicht auch eine simple while-Schleife mit read:
cat messwerte.txt | while read zeile do mach_irgendwas_mit $zeile done
Ansonsten wuerde ich die schon erwaehnte Loesung mit sed verwenden.
bye, Chris
Ulf schrieb:
Gibt es eigentlich noch eine andere Möglichkeit? Die Datei, die hier zeilenweise ausgelesen werden soll, enthält Meßwerte und ist ziemlich groß (>1MB soweit ich weiß), damit wird das mit der Zeit ineffizient (auch wenn der größte Teil der Rechenzeit von einem Fortranprogramm geschluckt werden dürfte, daß mit diesen Daten dann ziemlich umständlich gefüttert wird).
Also wenn Du Zeile fuer Zeile durchgehst, oder alle n Zeilen etwas auszuwerten hast, dann kaeme eventuell auch awk in Frage. Damit extrahiertst Du die Zeilen, welche Du wirklich haben willst, und dann kannst Du immer noch ein FORTRAN-Programm auf diese Daten loslassen. Wobei noch die Frage waere: warum unbedingt FORTRAN ? Oder wenn FORTRAN, warum liest es die Messwerte nicht selbst ein ?
Stefan
.
On Wed, Jun 06, 2001 at 10:54:14PM +0200, Stefan Lagotzki wrote:
Also wenn Du Zeile fuer Zeile durchgehst, oder alle n Zeilen etwas auszuwerten hast, dann kaeme eventuell auch awk in Frage. Damit extrahiertst Du die Zeilen, welche Du wirklich haben willst, und dann kannst Du immer noch ein FORTRAN-Programm auf diese Daten loslassen. Wobei noch die Frage waere: warum unbedingt FORTRAN ? Oder wenn FORTRAN, warum liest es die Messwerte nicht selbst ein ?
Weil das Programm von einem Doktoranden geschrieben wurde, nicht kommentiert ist, und kein Mensch mehr weiß, was es macht abgesehen von dem Auswerten von Meßdaten und Erzeugen eines Outputs, der dann etwas abgewandelt mittels gnuplot dargestellt werden kann. Ist eine Hiwibeschäftigung meines Bruders, und weder er noch ich haben die Kenntnisse von Fortran, um das Programm abzuändern (ich hab ein Fortran-Buch angefangen zu lesen, und nach der 2. Seite abgebrochen; schon die Aufteilung mit den ersten fünf Zeichen etc. ist ja richtig grausam.). Ach ja, die Variablen, die abgeändert werden sollen, stehen natürlich fest im Quelltext, aber mit sed ist das ja kein besonderes Problem.
Stefan
Ulf
es ging um das Zeilen auslesen auf der Kommandozeile... Ulf schrieb:
Weil das Programm von einem Doktoranden geschrieben wurde, nicht kommentiert ist, und kein Mensch mehr weiß, was es macht abgesehen von dem Auswerten von Meßdaten und Erzeugen eines Outputs, der dann etwas abgewandelt mittels gnuplot dargestellt werden kann.
Okay, wenn das so ist, dann sollte man auch alles so lassen, wie es ist. Es gibt wirklich FORTRAN-Routinen, gerade im Ingenieurwesen, die sind kaum zu uebertreffen und vor allem sind sie auf Richtigkeit geprueft und bewaehrt. Der naechste Doktorand portiert das Ganze dann mal auf C :-)
Ist eine Hiwibeschäftigung meines Bruders, und weder er noch ich haben die Kenntnisse von Fortran, um das Programm abzuändern (ich hab ein Fortran-Buch angefangen zu lesen, und nach der 2. Seite abgebrochen; schon die Aufteilung mit den ersten fünf Zeichen etc. ist ja richtig grausam.).
Echte Programmierer...
viele Gruesse, Stefan
On Fri, Jun 08, 2001 at 10:08:08PM +0200, Stefan Lagotzki wrote:
Echte Programmierer...
nutzen C++ oder andere _hochwertige_ Sprachen. :)
viele Gruesse, Stefan
cu, Ulf
On Saturday 09 June 2001 22:39, Ulf Lorenz wrote:
On Fri, Jun 08, 2001 at 10:08:08PM +0200, Stefan Lagotzki wrote:
Echte Programmierer...
nutzen C++ oder andere _hochwertige_ Sprachen. :)
<irony> Du verwechselst hier Hacker mit "echten Programmierern"[tm].
Wie ich sehe ist also etwas Aufklärungsarbeit für unsere "Frischlinge" nötig: ;-)
Hacker schreiben _schönen_ Code mit sog. Hochsprachen, die für das Problem auch geeignet[tm] und insgesamt kompatibel[tm] sind.
Richtige Programmierer bringen mit der "Sprache des Hauses" (je nach Institution FORTRAN, Creaso IDL, ALGOL, etc.pp.) funktionierenden Code zustande, der keinesfalls angefasst werden sollte, weil er sonst nicht mehr funktioniert.
Ausserdem ist dieser Code voll von sogenannten "Schroedinbug's" (nach dem Physiker Schrödinger), die erst erscheinen, wenn jemand bemerkt, dass der Code gar nicht funktionieren dürfte....
....man braucht dann schon einen Echten Programmierer[tm], um den Code wieder zum Laufen zu bekommen.
Echte Programmierer sind die Helden unserer Branche, denn sie sorgen dafür, dass Programmierer (im Allgemeinen) immer gebraucht werden...
Hacker und gute Designer dagegen verhalten sich ebenso kindisch, wie die Medizinforschung des frühen 20. Jahrhunderts: sie wollen etwas erreichen, was auch hält - kurz: sie sägen an dem Ast auf dem sie sitzen. </irony>
Konrad
On Wed, Jun 06, 2001 at 07:31:55PM +0200, Ulf Lorenz wrote:
Hallo,
mal was dringendes (wenn's geht noch heute). Wie kann ich eine x-beliebige Zeile einer Datei zwecks Shellprogrammierung auslesen?
zeile=$(sed -n '27p' datei)
oder klassisch:
zeile=`sed -n '27p' datei`
Das Prinzip dürfte klar sein :-)
Best regards from Dresden/Germany Viele Gruesse aus Dresden Heiko Schlittermann
lug-dd@mailman.schlittermann.de