sed, trennt eine Variable (die eine Zahl bereitstellt) von der Anweisung zum Einfügen von Text in einer bestimmten Zeile

sed, trennt eine Variable (die eine Zahl bereitstellt) von der Anweisung zum Einfügen von Text in einer bestimmten Zeile

Ich habe einige Probleme mit sed und sehe eine Variable, die eine Zahlenanweisung für das Einfügen von Text in eine bestimmte Zeile bereitstellt.

hier ist der funktionierende Code ohne die Variable:

sed -i '1i\NewLineHere\' ~/file/location/here.txt

Ich muss die Zahl 1 in $var ändern, aber mit dem Buchstaben „i“ daneben (ohne Leerzeichen), ohne dass es als Teil der Variable gesehen wird. Ich verwende „ “ statt „ “, damit sed die Variablen richtig sehen kann. Ich habe unzählige verschiedene Versuche unternommen und keiner hat funktioniert. Ein Beispiel dafür, wie das Problem aussieht, ohne dass versucht wird, das „i“ von der Variable zu trennen, während es daneben bleibt:

 sed -i "$vari\NewLineHere\" ~/file/location/here.txt

Vielen Dank im Voraus für alle Vorschläge oder Antworten

Antwort1

Hier ist das {}Anführen von Variablennamen nützlich. In Ihrem Fall${var}

Zum Beispiel:

$ var=100
$ echo $vari

$ echo ${var}i
100i

Sie {...}fungieren als „Scoping“ für den Variablennamen.

(Randbemerkung: Seien Sie \beim Wechseln zwischen 'und vorsichtig mit dem Zeichen ".)

verwandte Informationen