2016-12-19 3 views
0

, wenn Sie diesen Befehl ausgeben:Sed Erklärung Linux Raspbian Arbeits

sed -i 's/"ExecStart=-/sbin/agetty --noclear %I $TERM"/"ExecStart=-/sbin/agetty --noclear -a root %I $TERM"/g' /lib/systemd/system/[email protected] 

oder

sed -i s/"ExecStart=-/sbin/agetty --noclear %I $TERM"/"ExecStart=-/sbin/agetty --noclear -a root %I $TERM"/g /lib/systemd/system/[email protected] 

oder

sed -i s/'ExecStart=-/sbin/agetty --noclear %I $TERM'/'ExecStart=-/sbin/agetty --noclear -a root %I $TERM'/g /lib/systemd/system/[email protected] 

ich die folgende Fehlermeldung erhalten:

sed -i 's/"ExecStart=-/sbin/agetty --noclear %I $TERM"/"ExecStart=-/sbin/agetty --noclear -a root %I $TERM"/g' /lib/systemd/system/[email protected] 
sed: -e expression #1, char 21: unknown option to `s' 

Was mache ich hier falsch?

Antwort

1
sed -i "s#ExecStart=-/sbin/agetty --noclear %I $TERM#ExecStart=-/sbin/agetty --noclear -a root %I $TERM#g" /lib/systemd/system/[email protected] 

Die obige Zeile sollte gehen, versuchen Sie es!

Ihr Problem:

  • in diesem Format sein sollte: "s/foo$var1/bar$var2/g"
  • wenn Muster/Ersatz zu zerschneiden hat, haben Sie den s/../../ slash entweder zu entkommen oder andere Trennzeichen verwenden.
+0

auch funktioniert perfekt dank – jeremyforan

1

Ändern Sie den de-Begrenzer Zeichenfolge von / auf etwas anderes wie ; wenn sie versuchen, Zeichenketten Teil Beteiligung / in der Substitution zu ersetzen.

sed -i.bak 's;"ExecStart=-/sbin/agetty --noclear %I $TERM";"ExecStart=-/sbin/agetty --noclear -a root %I $TERM";g' /lib/systemd/system/[email protected] 
+0

arbeitete perfekt danke – jeremyforan