sed mit variable?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
latenite
Beiträge: 688
Registriert: 14.05.2007 01:04:23

sed mit variable?

Beitrag von latenite » 02.10.2009 21:32:08

Hallo Leute

ich versuche mit sed eine Zeihle zu ersetzen und die Zeilennummer soll aus einer Variable kommen:

also so

Code: Alles auswählen

0:512:root@pendrive /media/disk/subscripts [0]# line=$((`cat ./default_configs/default_table.txt | grep -n '## BUILDINGGROUND ##' | cut -d":" -f1`+1))
0:513:root@pendrive /media/disk/subscripts [0]# echo $line
8
0:514:root@pendrive /media/disk/subscripts [0]# sed -i '${line}s/.*/text/' ./current_configs/current_table.txt
sed: -e Ausdruck #1, Zeichen 4: extra characters after command
0:515:root@pendrive /media/disk/subscripts [1]# sed -i '8s/.*/text/' ./current_configs/current_table.txt
0:516:root@pendrive /media/disk/subscripts [0]# cat ./current_configs/current_table.txt | head -8 | tail -1
text
0:516:root@pendrive /media/disk/subscripts [1]# 
leider kann ich ${line} da so nicht nutzen. Warum? Und geht es irgendwie?

Danke

latenite
Beiträge: 688
Registriert: 14.05.2007 01:04:23

Re: sed mit variable?

Beitrag von latenite » 02.10.2009 21:36:05

ok ich will echt keinen "spam" produziern. Aber ich habe die Antwort gefunden:

Code: Alles auswählen

 sed -i -e "${line}s/.*/textiii/" ./current_configs/current_table.txt
geht prima :)

chrisbra
Beiträge: 122
Registriert: 19.10.2005 09:36:09
Wohnort: Sachsen-Anhalt
Kontaktdaten:

Re: sed mit variable?

Beitrag von chrisbra » 05.10.2009 10:03:51

latenite hat geschrieben:leider kann ich ${line} da so nicht nutzen. Warum? Und geht es irgendwie?
Weil Du einfache Anführungszeichen benutzt hast.
Meine Whishlist
:wq!

Benutzeravatar
Meillo
Moderator
Beiträge: 9254
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: sed mit variable?

Beitrag von Meillo » 05.10.2009 11:01:19

latenite hat geschrieben:ok ich will echt keinen "spam" produziern. Aber ich habe die Antwort gefunden:
Es ist keineswegs Spam wenn man die Antwort auf das Problem postet. Im Gegenteil, das ist sehr guter Stil und bringt nur Pluspunkte ein.

Jetzt noch ein ``gelöst'' in den Threadtitel (dazu ersten Post bearbeiten) und dein Vorgehen ist perfekt. :-)
Use ed once in a while!

Antworten