On Sam, 21 Jul 2001, Bernd Brodesser wrote:
Hallo David,
* David Haller schrieb am 21.Jul.2001:
On Sam, 21 Jul 2001, Bernd Brodesser wrote:
* David Haller schrieb am 21.Jul.2001:
sed -n '/ADRESSE/s/MUSTER/ERSETZUNG/p' DATEI Das entspricht also:
grep 'ADRESSE' DATEI | sed 's/MUSTER/ERSETZUNG/'
Das ist defenitiv nicht das selbe. Ich habe es gerade noch einmal getestet. Bei
sed -n '/ADRESSE/s/MUSTER/ERSETZUNG/p' DATEI
tauchen nur die Zeilen auf, die ADRESSE enthalten _und_ wo eine Ersetzung vorgenommen wurde.
Ja.
Bei
grep 'ADRESSE' DATEI | sed 's/MUSTER/ERSETZUNG/'
tauchen alle Zeilen auf, die ADRESSE enthalten, auch wenn in dieser Zeile keine Ersetzung vorgenommen wurde.
Ja. Ich hatte es lfasch gelesen ;)
Nein. *scnr*. grep 'ADRESSE' =~= sed -n '/ADRESSE/p'
Was bedeutet =~= ?
Dass sich beide Befehle entsprechen und vertauschbar sind. (ein = Zeichen mit dem ~ drueber).
Dass dann _anschliessend_ auf den mit /ADRESSE/ oder grep ausgefilterten Zeilen noch eine Ersetzung stattfindet ist irrelevant.
Ist es nicht.
Korrekt.
Mal "eindeutig" geschrieben:
grep 'ADRESSE' DATEI | sed 's/MUSTER/ERSETZUNG/'
=~=
sed -n '/ADRESSE/p' DATEI | sed 's/MUSTER/ERSETZUNG/' ^^kein -n ^ kein p
Ja, beide obigen Zeilen zeitigen das gleiche Ergebniß. Ich nehme mal an, daß =~= ungefähr bedeuten soll, da grep eine etwas andere Syntax für das Muster hat.
*g*, ne, einfach, dass beide Austauschbar sind (gleiches Ergebnis).
=
sed -n '/ADRESSE/s/MUSTER/ERSETZUNG/p' DATEI
Und das stimmt nicht. Probiers aus! Du brauchst eine Zeile, die ADRESSE nicht aber MUSTER enthält. Sie taucht hier nicht auf.
Ack. Sorry. ISC. Ich hatte diesen allgemeine(re)n Fall nicht beachtet. So, jetzt hab auch ich mal wieder was gelernt :) -dnh -- Ich hoffe das dieser Satz nicht so endet wie die meisten von mir. Nämlich als Wognatur. [WoKo in dag°]