Ich kann den grundlegendsten sed-Befehl nicht in der Befehlszeile ausführen

Ich kann den grundlegendsten sed-Befehl nicht in der Befehlszeile ausführen

Ich fühle mich wie ein absoluter Neuling. Warum funktioniert das nicht?

$ echo foobar > textfile
$ sed /foo/bar/ textfile
sed: can't find label for jump to `ar/'

Ich habe auch sed "/foo/bar/" textfileund ausprobiert sed '/foo/bar/' textfile, was alles den gleichen Fehler ergibt.

Verwende Ubuntu 8.04 und GNU sed Version 4.1.5 über Bash.

Antwort1

Versuche dies: sed 's/foo/bar/' textfile.

  • Anführungszeichen um die Aussage sind eine gute Praxis
  • sfür Ersatz. Es ist der Befehl, den Sie ausführen möchten. fooist der Suchbegriff barder Ersatz.

Es gibt viele Informationen zu sed online. Zum Beispiel:http://www.catonmat.net/blog/sed-one-liners-explained-part-one/

Antwort2

Sie müssen sedeinen Befehl eingeben. Das Programm analysiert Ihre Eingabe als Suchmuster, /foo/gefolgt vom Befehl b ar/(Verzweigung zu Label ar/). Sie meinten wahrscheinlich „s/foo/bar/“, also das Ersetzen der ersten Instanz von foodurch barin jeder Zeile.

verwandte Informationen