[gelöst]shellscript und sed

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Prisma1
Beiträge: 24
Registriert: 16.09.2012 19:41:37

[gelöst]shellscript und sed

Beitrag von Prisma1 » 03.10.2012 16:33:13

Ich möchte mittels script eine Datei bearbeiten. Dabei soll Text durch anderen Text ersetzt werden.
Dazu habe ich ...

Code: Alles auswählen

sed 's/Meier/Müller/g' datei
...gefunden, was im Prinzip schon mal ganz ordentlich arbeitet.

Ich möchte allerdings die zu tauschenden Werte mittels Variablen "mitgeben" und habe folgendes probiert...

Code: Alles auswählen

#!/bin/bash

read -p 'Anker benennen: ' Anker
read -p 'KurzRef einfuegen: ' KurzRef


sed -e 's/$Anker/$KurzRef/g' datei
Leider funktioniert es nicht.
Wie müsste das aussehen, damit es läuft?

Danke im Voraus!
Zuletzt geändert von Prisma1 am 03.10.2012 16:54:43, insgesamt 1-mal geändert.

Benutzeravatar
r900
Beiträge: 1053
Registriert: 09.10.2011 20:06:11
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Stockholm

Re: shellscript und sed

Beitrag von r900 » 03.10.2012 16:39:06

Du musst Anführungszeichen verwenden, die Apostrophe verhindern Variablenersetzung. Also so:

Code: Alles auswählen

sed -e "s/$Anker/$KurzRef/g" datei
Wenn die Datei auch wirklich editiert werden soll musst du sed noch die Option "-i" mitgeben.
Ein Abfrage ob $Anker nicht leer ist wäre auch nicht verkehrt.

Code: Alles auswählen

[ -n "$Anker" ] && sed -e "s/$Anker/$KurzRef/g" datei

Antworten