Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
latenite
- Beiträge: 688
- Registriert: 14.05.2007 01:04:23
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
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:
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.
-
Meillo
- Moderator
- Beiträge: 9254
- Registriert: 21.06.2005 14:55:06
- Wohnort: Balmora
-
Kontaktdaten:
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!