Kleines Problem mit "sed"

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
thilo
Beiträge: 241
Registriert: 12.12.2002 22:48:44

Kleines Problem mit "sed"

Beitrag von thilo » 19.09.2003 20:32:57

Hallo!

Mit "sed" möchte ich in einer Datei eine Zeile editieren.

Das folgende Skript (Beispiel!) funktioniert ohne Probleme:

Code: Alles auswählen

#!/bin/bash
cat /home/thilo/.bashrc | \
sed -e '/# some more ls aliases$/c\
# noch einige andere Aliase\
alias halt="sudo \/sbin\/halt"\
alias geb=".\/geburtstage"'
Die Ausgabe sieht wie folgt aus:
  • .....
    .....
    # noch einige andere Aliase
    alias halt="sudo /sbin/halt"
    alias geb="./geburtstage"
    .....
    .....
Nun möchte ich aber gerne andere Anführungszeichen in mein Skript einbauen. Also habe ich folgendes probiert:

Code: Alles auswählen

#!/bin/bash
cat /home/thilo/.bashrc | \
sed -e "/# some more ls aliases$/c\
# noch einige andere Aliase\
alias halt='sudo \/sbin\/halt'\
alias geb='.\/geburtstage'"

Mein Ziel ist folgendes:
  • .....
    .....
    # noch einige andere Aliase
    alias halt='sudo /sbin/halt'
    alias geb='./geburtstage'
    .....
    .....

Leider funktioniert das so nicht.....

Kann mir jemand helfen?

Vielen Dank für Eure Mühe!

Gruß,

Thilo

Olaf Dietsche
Beiträge: 520
Registriert: 12.06.2003 23:18:50
Wohnort: Siegburg

Beitrag von Olaf Dietsche » 20.09.2003 09:26:02

In " werden Shellvariablen expandiert. Wenn du das nicht willst, mußt du die entsprechenden Stellen mit einem \ maskieren. Also:

Code: Alles auswählen

sed -e "/# some more ls aliases\$/c\
# noch einige andere Aliase\
alias halt='sudo \/sbin\/halt'\
alias geb='.\/geburtstage'" /home/thilo/.bashrc

Antworten