Mit sed im terminal zum ersetzen von text in der Datei

Ich habe diesen text in diese Datei:

test.php

$databases = array (
  'default' => 
  array (
    'default' => 
    array (
      'database' => 'original',
      'username' => 'root',
      'password' => 'root',
      'host' => 'localhost'
    ),
  ),
);

Im terminal ausführen dieser Linie ersetzen 'original' mit 'neuen'

sed -i 's/original/new/g' test.php

UPDATE: Die Fehlermeldung ist:

sed: 1: "test.php": undefined label "est.php'

Was ist das problem?

UPDATE 2:

Wenn ich nur laufen: ( habe ich entfernt, die '-i')

sed 's/original/new/g' test.php

Sehe ich die text Datei geändert in der Klemme. Aber dann wird die Datei nicht gespeichert.

  • Es ist eher unwahrscheinlich, dass die Fehlermeldung zu bekommen, die Sie erwähnt haben, durch Ausstellung sed -i 's/original/new/g' test.php. Welchen Befehl hast du benutzt?
  • möglich, Duplikat der warum "zusätzliche Zeichen nach Befehl" Fehler angezeigt, für die sed-Befehlszeile gezeigt?
  • Ich fand, dass problem ist das 'ich'. Wenn ich nur 'sed 's/original/neu/g' test.php' (ich entfernt die '-i') es funktioniert, aber die Datei wird nicht gespeichert.
  • BTW: wieso der downvote...?
  • Ich habe gerade kopieren/einfügen-Befehle. Ziemlich sicher.
  • Sorry, Sie hatten Recht. Die Fehlermeldung ist diese hier: sed: 1: "test.php": undefined label "est.php'
  • Sie haben nicht noch gezeigt, das eigentliche problem-code. Es scheint, dass die verlinkten doppelte Frage würde lösen das Problem, das Sie gegenüberstellen.
  • Ich aktualisiert meine Frage mit der richtigen Fehlermeldung. Ich habe versucht, mit anderen Trennzeichen, wie gesagt, in der anderen Frage der link, aber es hat nicht funktioniert.
  • Sind die Muster & replacement strings-Variablen?
  • Nein, Sie sind nur text

InformationsquelleAutor chefnelone | 2014-01-20
Schreibe einen Kommentar