Anzeige:
Seite 2 von 2 ErsteErste 12
Ergebnis 16 bis 22 von 22

Thema: Zeilenergänzung mit sed aus Variable

  1. #16
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.054
    wäre das dann nicht ein Fall für sed -i?
    ... abgesehen von den useless-use-of-cat-Award...
    Ich bin root - ich darf das.

  2. #17
    Registrierter Benutzer
    Registriert seit
    Mar 2020
    Beiträge
    6
    Ja, das geht sicher auch mit sed -i , dann spart man sich das tausendfache kopieren mit cat. Ist eventuell auch noch schneller und schicker.

    Ich habe aber eine Abneigung gegen den -i Parameter, denn wenn ich z.B. das Skript mittendrin abbreche, oder es sich als fehlerhaft erweist, dann möchte ich den aktuellen Stand der Ausführung sehen können. Das geht am leichtesten, wenn die Eingabedatei NICHT verändert wird und die Ausgabedatei und alle temporären Dateien bestehen bleiben, bis das Skript seinen Abschluss gefunden hat. Ist also meine spezielle Vorliebe beim Skripte schreiben.

    Aber Du hast Recht, es geht schöner als von mir beschrieben.
    Geändert von fdb123 (01.04.20 um 17:42 Uhr)

  3. #18
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.054
    "evtl."?

    Sorry, aber Dein Script ist die böseste IO-Pest, die ich den letzten Jahren hier gesehen habe...

    Debug und so in allen Ehren - aber das kommt dann raus, wenn das Ding "ready for production" ist und für's gute Gewissen kopiert man sich vorher die Original-Datei an einen sicheren Platz. 1x.
    Ich bin root - ich darf das.

  4. #19
    Registrierter Benutzer
    Registriert seit
    Mar 2020
    Beiträge
    6
    böseste IO-Pest
    .... welch böse Worte...

    das kommt dann raus, wenn das Ding "ready for production"
    Seh ich genauso... ich kenne aber weder die Struktur der Input-Datei, noch die Struktur der Suchbegriffe (sind da Blanks oder Sonderzeichen drin ?). Von daher sollte man das Skript erst ein paar mal gegen echte Daten laufen lassen. Wenn es prinzipiell fehlerfrei ist, kann man es immer noch schön machen und i/o-technisch optimieren.

    ++++++ zwei Stunden später +++++++

    Die Kritik von marce hat mich angesport, es noch einmal zu ändern....

    Code:
    cat input.txt > output.txt
    while read xx
    do      
    sed -i "/${xx}/{s/^\(.*\)$/\1 -----> ${xx}/g}"  output.txt  
    done < suchbegriffe.txt
    exit 0
    Jetzt wird sed mit Parameter -i genutzt. Und was bringt die Optimierung ? 20 % schneller als die erste Variante von mir. Anstatt 52 sekunden (erste Version) macht diese Version es in 42 Sekunden bei einem Testdatenbestand von 30.000 Zeilen input und 2000 Zeilen Suchbegriffe.
    Geändert von fdb123 (01.04.20 um 19:03 Uhr)

  5. #20
    Registrierter Benutzer Avatar von Huhn Hur Tu
    Registriert seit
    Nov 2003
    Ort
    Karlsruhe
    Beiträge
    2.243
    Und wenn du das ganze dann mit python in memory machst, dann laeuft das ganze noch schneller.

    Ich hatte auch mal ein Skrip, welches line per line einen hash basteln musste inkl. aufruf sha...sum, das lief 3 Stunden, mit python in memory, nur noch 10 Minuten , aber manchmal ist so eine Digitalheizung ja ganz nett
    Zwischen anonym sein wollen und seine Daten nicht verkaufen wollen, liegen zwei Welten. Wenn man sich einen kostenpflichtigen Dienst sucht, dann meist, weil man für diese Dienstleistung zahlt und nicht selbst das Produkt sein will.


  6. #21
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.054
    wenn die Datenmenge "in Memory" passt :-)

    ... mach solche Späße mal mit ein paar GB / TB Logfiles und lass da mal entsprechend gerartete Auswertungen / Aggregationen drüber laufen... - da freut man sich über ein kleines Hadoop-Backend :-)
    Ich bin root - ich darf das.

  7. #22
    Registrierter Benutzer
    Registriert seit
    Mar 2020
    Beiträge
    8
    Hallo fdb123
    Sorry, dass ich erst jetzt zurückmelde. Hab ein paar Tage nicht ins Forum geschaut.
    Vielen Dank für Dein Script. Das macht genau was es soll und deutlich schneller als mein Anfänger-Script. Es gab auch keine Fehlermeldungen, trotz diverser Sonderzeichen. Die input-Datei ist ein Chatverlauf. Da sind auch Smileys drin. Außerdem normale Sonderzeichen wie "!", "?", Bindestriche, Slashes, Doppelpunkt (wegen URLs) etc.

    Ein Dank natürlich auch an alle, die sich beteiligt haben. Ich hab wieder eine Menge dazugelernt. Ich hoffe ich kann meine Erfahrungen hier bald auch weitergeben.

Ähnliche Themen

  1. Variable in for schleife?
    Von xJAMESx im Forum Anwendungen Allgemein, Software
    Antworten: 15
    Letzter Beitrag: 25.08.11, 08:37
  2. PS1 Variable + SuSe 10.0
    Von Cerox im Forum System installieren und konfigurieren
    Antworten: 5
    Letzter Beitrag: 04.12.05, 13:46
  3. PHP Self Variable nicht da
    Von thilly01 im Forum Linux als Server
    Antworten: 1
    Letzter Beitrag: 09.11.05, 14:06
  4. export VARIABLE in Shell <> export VARIABLE in Skript????
    Von ThorstenHirsch im Forum Linux Allgemein
    Antworten: 8
    Letzter Beitrag: 13.06.03, 21:53
  5. Dataset in Variable
    Von thilly im Forum Linux Allgemein
    Antworten: 4
    Letzter Beitrag: 21.05.03, 15:47

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •