sed und variablen

tennessee

tennessee

Linuxfan
Hallo zusammen,

kann mir bitte einer sagen was hier falsch ist?
Ich möchte eine zeile komplett ersetzen. Die Zeilennummer soll mit $k representiert werden.

PHP:
sed '"$k"s=^.*$=das ist die neue Zeile mit Slash /= '

so bekomme ich diese Meldung:

PHP:
sed: -e expression #1, char 1: unknown command: `"'


so wiederum:
PHP:
sed "$ks=^.*$=das ist die neue Zeile mit Slash /= "
bekomme ich die gleich Meldung

ich hab schon alles versuch mit \ qouten aber nichts hilft.

kann mir bitte einer sagen was falsch ist?

Besten Dank und Schöne Grüße
 
Hi,

in deinem ersten Ansatz werden aufgrund der Single-Quotes weder die Variable $k noch die Double-Quotes ausgewertet/entfernt (wie du am einfachsten mit 'set -x' sehen kannst). Du musst also eigentlich nur das $k rausziehen:
Code:
$ k=3
$ seq 1 5 | sed '"$k"s=^.*$=das ist die neue Zeile mit Slash /= '
sed: -e expression #1, char 1: unknown command: `"'
$ seq 1 5 | sed "$k"'s=^.*$=das ist die neue Zeile mit Slash /= '
1
2
das ist die neue Zeile mit Slash /
4
5
$

Gruss, A.
 
hallo zusammen,

mir hat nur das Abgrenzungszeichen {} gefehlt. so funktioniert es nun im Gesamten:
PHP:
sed "${k}s=^.*$=$spalte1;$spalte2;$i;$j;$spalte5;$spalte6;$spalte7;$spalte8;$spalte9;$spalte10;$spalte11;$spalte12;$spalte13;$spalte14=" filer.config.work > tmp.txt
mv tmp.txt filer.config.work
 

Ähnliche Themen

Textdatei filtern und löschen mit grep /sed

Keine grafische Oberfläche (Debian Installation)

SED Variable

Variable automatisch hochsetzten

Mehrzeiligen String mittels sed ersetzen

Zurück
Oben