2017-05-13 2 views
0

Wie verwende ich sed richtig, um Text mit einer Variablen in eine Datei einzufügen?Wie verwende ich sed richtig, um Text mit einer Variablen in eine Datei einzufügen?

MYNIC_IP=`ip addr show eth0 | grep eth0 | awk '{ print $2; }' | sed 's/\/.*$//'` 

Ok cool.

echo $MYNIC_IP 
eth0: 172.31.43.190 

sudo sed -i -e '1i'$MYNIC_IP /usr/share/nginx/html/index.html 

Dieser Teil der variablen führt hinzugefügt werden ... nur eth0:

+0

Erläuterung, die Variable endet mit einem Leerzeichen. Sie wissen nicht, wie Sie das Trennzeichen korrigieren können, damit die gesamte Variable hinzugefügt wird? –

Antwort

0

Sie müssen es so sieht, einschließlich der Raum einen einzelnen String sed zitieren:

sed -i -e "1i\\ 
$MYNIC_IP" 

Mit doppeltem Anführungszeichen, Sie können immer noch Variablen innerhalb verwenden und sie werden erweitert.

+0

Versuchte das. Etwas mit dem: in der Variablen zu tun. Ergebnisse in sed: -e Ausdruck # 1, char 12: unbekannter Befehl: '. ' –

+0

@JBalrog: Versuchen Sie, was ich jetzt geschrieben habe. Sie benötigen eine neue Zeile im Befehl "i". –

+0

Ich habe Probleme, die Frage sogar zu verstehen. Kann einer von euch die Frage so bearbeiten, dass es klarer ist, was zu erreichen ist? Versuchen Sie, ein Q/A-Paar zu erstellen, das auch für andere Benutzer nützlich ist. Zeigt die erste Hälfte nur, wie die Variable gefüllt wird und die eigentliche Frage ist, wie man sie index.html vorstellt? – Yunnosch

Verwandte Themen