Wertebereich ersetzen mit sed

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von elyps, 28.03.2015.

  1. #1 elyps, 28.03.2015
    Zuletzt bearbeitet: 29.03.2015
    elyps

    elyps Jungspund

    Dabei seit:
    20.10.2004
    Beiträge:
    12
    Zustimmungen:
    0
    Hallo Forenmitglieder,

    ich habe ein kleines Problem mit sed und zwar möchte ich in einer Datei mit mehren Spalten und Zeilen das Vorkommen eines bestimmten Wertebereiches mit Nullen ersetzen. Eigentlich müsste das mit sed doch relativ einfach gehen; mein bisheriger Versuch führt leider nicht zum Erfolg... es tut sich gar nichts:

    MAX50=`cat max50.txt`
    MAXRESULT=`cat max-result.txt`
    sed -i "s/$MAX50/0/g;s/$MAXRESULT/0/g" differenz2.txt

    Die Anfangs- und Endwerte des Wertebereiches sind in den Textdateien max50.txt und min50.txt enthalten und laut Doku sollte der Aufruf mit sed und doppelten Anführungszeichen "s/.../g" klappen.

    Welchen "dummen" Fehler mache ich?

    Vielen Dank,
    Marcus
     
  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. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.056
    Zustimmungen:
    8
    Nur mal so gefragt: hast Du Dir schon mal den Inhalt der Variable MAX50 und MAXRESULT angeschaut?

    Oder - direkter - Dich damit beschäftigt, wie man einer Variablen den Inhalt einer Datei zuweist?

    Ob's dann klappt müsste man probieren, bei sed sind Variablen als Suchpattern nicht völlig trivial, aber da kann man sich entsprechend was ergooglen (hängt hauptsächlich vom Inhalt der Variablen ab).
     
  4. elyps

    elyps Jungspund

    Dabei seit:
    20.10.2004
    Beiträge:
    12
    Zustimmungen:
    0
    Ähm... Ich hatte so vieles ausprobiert, dass ich mich bei der Definition der Variablen verrannt hatte. Da hast Du natürlich recht, so _kann_ es nicht klappen.

    Dennoch ist der Aufruf von Variablen in SED (für mich) ziemlich umständlich. Ich habe es jetzt mit einer Schleife in AWK umgesetzt und das klappt einwandfrei; es werden alle Werte unter einem bestimmten Grenzwert auf Null gesetzt:

    awk -v var="$MAX50" 'BEGIN { FS = OFS = "\t" } { for(i=1; i<=NF; i++) if($i<var) $i = 0 }; 1' differenz.txt

    Danke für Deinen Hinweis!
     
  5. #4 Programmer78, 04.04.2015
    Programmer78

    Programmer78 Foren As

    Dabei seit:
    28.11.2007
    Beiträge:
    93
    Zustimmungen:
    1
    mit sed hat es bei mir immer funktioniert, wenn ich die ' gelassen habe und die Variablen in '"$variable"' gesetzt habe
     
  6. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema: Wertebereich ersetzen mit sed
Besucher kamen mit folgenden Suchen
  1. sed suchen ersetzten anführungszeichen

Die Seite wird geladen...

Wertebereich ersetzen mit sed - Ähnliche Themen

  1. einfache Wertebereichabfrage

    einfache Wertebereichabfrage: Hi, möchte die do .. .while Schleife solange wiederholen, bis die Variable (integer) <-128 und <+127 (-128 bis +127) ist. Irgendwie gelingt mir...
  2. [Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter

    [Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter: Hallo zusammen, ich bin an einem Punkt angekommen, wo ich nicht mehr weiter komme und hoffe ihr könnt mir weiter helfen. Anbei ein Ausschnitt aus...
  3. Snappy Personal soll bei Ubuntu langfristig Debians Paketformat ersetzen

    Snappy Personal soll bei Ubuntu langfristig Debians Paketformat ersetzen: Bereits vor mehreren Wochen gab Will Cooke von Canonical bekannt, für Ubuntu 15.10 werde ein Image, basierend auf der Snappy-Core-Technologie,...
  4. sed suchen und ersetzen mit Variable übergeben?

    sed suchen und ersetzen mit Variable übergeben?: hallo, ich habe folgenden sed-Befehl, der schon super ist und auch alles tut, was er tun soll, nur eben natürlich das $i einfach hinschreibt...
  5. Unterschiedlichen Text in mehrere Dateien finden und löschen / ersetzen

    Unterschiedlichen Text in mehrere Dateien finden und löschen / ersetzen: Moin erstmal, ich suche nach einer Möglichkeit, in mehreren unterschiedlichen Dateien Text mit folgendem Muster zu suchen und zu löschen oder...