Zeilen auslesen und in eine neue Datei schreiben

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von angelika, 03.08.2005.

  1. #1 angelika, 03.08.2005
    angelika

    angelika Grünschnabel

    Dabei seit:
    03.08.2005
    Beiträge:
    4
    Zustimmungen:
    0
    Hallo,
    ich bin absoluter Anfänger und habe nun folgendes Problem:

    Aus einer Log-Datei mit ca. 10.500.000 Einträgen möchte ich gerne mehrere zusammenhängende Zeilen auslesen und in eine neue Datei kopieren. Folgendes habe ich versucht:

    Sed –n „7212821,10440747 test.log“ ask_user_rel__is1338__.log.42cc241a

    und diese Meldung erhielt ich:
    Sed: Can’t find label for jump to ‘est.log’

    Ich befinde mich auf der Ebene wo auch die ask_user_rel__is1338__.log.42cc241a liegt und ausgelesen werden soll. Die test.log soll neu erstellt werden.

    Kann mir jemand auf die Sprünge helfen?

    Gruss
    Angelika
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Cyber, 03.08.2005
    Zuletzt bearbeitet: 03.08.2005
    Cyber

    Cyber .:DISTORTED:.

    Dabei seit:
    16.05.2003
    Beiträge:
    999
    Zustimmungen:
    0
    Ort:
    D -> BW -> Karlsruhe
    Ich hab das so jetzt noch nicht gemacht und auch leider grad kein richtiges OS zur Hand, aber auf den ersten Blick würd ich mal sagen, dass die Angabe der Zieldatei test.log an der falschen Stelle sitzt, daher als Sprungmarke identifiziert wird und diese natürlich nicht vorhanden ist.

    So frei aus dem Bauch heraus würd ichs mal so probieren
    Code:
    Sed –n „7212821,10440747“ ask_user_rel__is1338__.log.42cc241a >> test.log
    
    und BTW: Willkommen im Board :)

    // EDIT:

    Gerade noch gefunden:

    Code:
    sed -n '7212821,10440747/w test.log' ask_user_rel__is1338__.log.42cc241a
    
     
  4. #3 angelika, 03.08.2005
    angelika

    angelika Grünschnabel

    Dabei seit:
    03.08.2005
    Beiträge:
    4
    Zustimmungen:
    0
    Hi Cyber,
    folgende Meldungen habe ich erhalten:

    Code:
    Sed –n „7212821,10440747“ ask_user_rel__is1338__.log.42cc241a >> test.log
    
    Meldung:
    Sed: e expression #1, char 17: Command only usess one address

    Code:
    sed -n '7212821,10440747/w test.log' ask_user_rel__is1338__.log.42cc241a
    
    Meldung:
    Sed: -e expression #1, char 16: unknown command: ``/’’

    Die Variante mit /w hatte ich auch bei http://www.linuxfibel.de/sed.htm#script gefunden, schade, dass er wg. dem "/" meckert. Gibt es die Möglichkeit einer anderen Schreibweise?

    Bye,
    Angelika
     
  5. Cyber

    Cyber .:DISTORTED:.

    Dabei seit:
    16.05.2003
    Beiträge:
    999
    Zustimmungen:
    0
    Ort:
    D -> BW -> Karlsruhe
    Hi Angelika,

    evtl. mal den Slash weglassen und nur ein Leerzeichen dazwischen setzen oder vtl. mal mit nem Komma probieren. Ansonsten muss ich passen, da ich leider im Moment keine bash zur Hand hab, sry.
     
  6. #5 Wolfgang, 03.08.2005
    Zuletzt bearbeitet: 03.08.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Du sitzt aber schon an einer *nix Kiste oder ?
    Ich frage wegen deinem seltsamen Quoting, was mir sehr nach M$ ausschaut...
    im Prinzip ist es recht einfach;
    sed -n ' 7212821,10440747 p' test.log >ask_user_rel__is1338__.log.42cc241a
    Das printet dir aus der Datei test.log die Zeilen 7212821 bis 10440747 (einschließlich!) in die Datei ask_user_rel__is1338__.log.42cc241a.
    Beide Dateien liegen im gleichen Ordner.
    Wenn du es andersrum willst vertausch einfach die beiden Dateinamen in der Zeile! Das > leitet die ausgabe von p = print in die Datei dahinter um. Die Eingabe kommt vom ersten Argument hinter dem gequoteten Anweisungen.
    HTH Gruß Wolfgang
    Edit
    Latürnich habe ich hier einen fehler gemacht, und die / / zu entfernen vergessen, da es ja um Adressen geht statt RE 's -also korrigiert und wech...
     
  7. Cyber

    Cyber .:DISTORTED:.

    Dabei seit:
    16.05.2003
    Beiträge:
    999
    Zustimmungen:
    0
    Ort:
    D -> BW -> Karlsruhe
    Wenn mich meinst, leider Ja :).Wenn M$ halbwegs kompatibel zu offenen Formaten wär würd ich ja was anderes booten, aber so muss ich mich hier der Allgemeinheit fügen.
     
  8. #7 Wolfgang, 03.08.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    LOL erwischt :D
    Aber ich meinte dich garnicht, sondern Angelika wegen den unten stehenden Anführungszeichen und dann auch noch doppelt.

    --->Sed –n 7212821,10440747 test.logask_user_rel__is1338__.log.42cc241a <-- das kann so nicht funktionieren.
    Lösung: siehe mein obiges Geschreibsel.

    Gruß Wolfgang
     
  9. #8 angelika, 03.08.2005
    angelika

    angelika Grünschnabel

    Dabei seit:
    03.08.2005
    Beiträge:
    4
    Zustimmungen:
    0
    Hi,
    Problem gelöst.
    Daaaaankeeeee für die schnelle Hilfe und so funktionierts nun:

    Code:
    sed -n '7212821,10440747 w test.log' ask_user_rel__is1338__.log.42cc241a
    
     
  10. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  11. #9 angelika, 03.08.2005
    angelika

    angelika Grünschnabel

    Dabei seit:
    03.08.2005
    Beiträge:
    4
    Zustimmungen:
    0
    Hallo Wolfgang,
    ja, Du hast recht. Ich arbeite zeitgleich an 2 Rechnern, der eine ist mit ISDN über PuTTY auf dem Linux Server eingelogt. Und während dieser ISDN Verbindung mit spezieller Einwahl beim Kunden, habe ich keine Möglichkeit ins Internet zu kommen, deshalb der zweite Rechner und hier sind beim abspeichern des Codes mit Word die ' mit " ersetzt worden :dreht:

    Danke für Deinen Lösungsvorschlag, sieht anders aus als meiner, aber wenn's funzt ist's ja egal.

    Bye,
    Angelika
     
  12. #10 Wolfgang, 03.08.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Ja, es gibt unter Unix meist mehrere Lösungen.
    Unter M$ gibt es aber auch ein sed, dort müssen dann aber die Quotings ( so ich mich recht erinnere) doppelt sein.
    Die Quoting wie sie in deinem ersten Posting stehen, dürften aber in keinem OS funktionieren.
    Gruß Wolfgang
     
Thema:

Zeilen auslesen und in eine neue Datei schreiben

Die Seite wird geladen...

Zeilen auslesen und in eine neue Datei schreiben - Ähnliche Themen

  1. 2 Zeilen aus einer txt auslesen

    2 Zeilen aus einer txt auslesen: Hallo Leute, ich habe eine Datei die immer aus zwei zusammenhängenden Zeilen besteht, als Beispiel: DE0006231004 # 15,04 Infineon DE0005785604...
  2. Prblem mit zeilenweises auslesen von Datei und schreiben nach mysql

    Prblem mit zeilenweises auslesen von Datei und schreiben nach mysql: Hallo Eventuell kann mir jemand bei meinem Problem helfen. Ich habe mich irgendwie total verrannt und komme nicht weiter. Die folgende...
  3. Liste zeilenweise auslesen und best. Teile umwandeln ...

    Liste zeilenweise auslesen und best. Teile umwandeln ...: Hallo, ich habe eine Liste die in etwas so ausschaut: ---------- lxbh1at9_ERL_20 aif2us7_WQA_02 . ... ---------- Im ersten Schritt muss ich den...
  4. datei auslesen und zeilen löschen

    datei auslesen und zeilen löschen: hallo leute :) hab ein kleines problem. ich hab ne datei auszulesen, in der bestimme daten gespeichert sind (mit zeitangabe). nun soll ich...
  5. *.txt zeilen+spaltenweise auslesen

    *.txt zeilen+spaltenweise auslesen: Hallo alle Zusammen! Ich hab eine Text-Datei vorliegen mit folgendem Inhalt: Zahl1,1; Zahl1,2; Zahl1,3; Zahl1,4 Zahl2,1; Zahl2,2; Zahl2,3;...