Swen Wacker: Sed: erste und bestimmte andere Zeilen behalten

Moin,

ich kenne mich mit sed nur rudimentär und versuche gerade zwei Dinge zu kombinieren:

Ich möchte (unter windows) aus einer Datei die erste Zeile sowie alle Zeilen, in den einen bestimmter Begriff enthalten, behalten und in eine neue Datei schreiben.

Die erste Zeile erhalte ich mit

sed 1q input.csv > output.csv

Die andere Zeilen filtere ich mit

sed -n "/pharmacy/p" input.csv > output.csv

Das klappt prima. Nun würde ich das gerne in einem Rutsch machen. Wie geht das? Ich habe zwar über "hold space" gelesen, verstehe es aber anscheinend nicht

Danke für Hinweise/Tipps

  1. Ich kaufe mir ein n, ein e und ein p, verschenke ein q - und löse selbst:

    sed -n -e 1p -e "/pharmacy/p" input.csv >output2.csv

    1. Om nah hoo pez nyeetz, Swen Wacker!

      Ich kaufe mir ein n, ein e und ein p, verschenke ein q - und löse selbst:

      sed -n -e 1p -e "/pharmacy/p" input.csv >output2.csv

      Die SED kenne ich noch aus meinen Kindheitstagen, aber unter Umständen fehlt jetzt ein Leerzeichen.

      sed -n -e 1p -e "/pharmacy/p" input.csv > output2.csv  
      
      

      Matthias

      --
      Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Notar und Notarzt.

      1. Hallo,

        Die SED kenne ich noch aus meinen Kindheitstagen

        ;-)

        aber unter Umständen fehlt jetzt ein Leerzeichen.

        sed -n -e 1p -e "/pharmacy/p" input.csv > output2.csv

        Eher nicht. Das Leerzeichen nach dem input/output redirection character '<' oder '>' ist optional. Ebenso vor oder nach dem Pipe-Zeichen '|'.
        <speech voice="rüdigerhoffmann" speed="slow">Das kann man setzen ...
        muss man aber nicht ...</speech>

        Ciao,
         Martin

        --
        why the heck do you jerk think, that wir ein doppelposting nicht bemerken, wenn you zwischendurch the sprache wechselst?
          (wahsaga)
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. Om nah hoo pez nyeetz, Der Martin!

          <speech voice="rüdigerhoffmann" speed="slow">Das kann man setzen ...
          muss man aber nicht ...</speech>

          Immer diese Pleonasmen ;-)

          Ich bin übrigens durch Zufall über ein Wort gestolpert, was ich bis dato noch nicht kannte: Mantiker

          Ich bin Semantiker, kein Mantiker.

          Matthias

          --
          Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Papi und Papier.

      2. Moin

        (...) aber unter Umständen fehlt jetzt ein Leerzeichen.

        Auf alle Fälle sieht es mit Leerzeichen hübscher aus :-)

        In meiner Windowsumgebung funktionieren alle Varianten

        input.csv > output2.csv
        input.csv>output2.csv
        input.csv> output2.csv
        input.csv >output2.csv