• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

probleme mit sed

gschoen57

Antonowka
Registriert
17.11.09
Beiträge
356
Hallo zusammen,

ich weiß nicht, ob ich in diesem Forum richtig bin, sonst bitte verschieben.

Ich habe folgendes Problem auf meinem MAC:

ich möchte mit sed ein "Klammer auf" "(" durch ein "*" ersetzen. Das funktioniert leider nicht:
habe folgenders in meinem Script:

C=$(echo $B | sed 's/\!/\*/g');
D=$(echo $C | sed 's/\(/\*/g');

Das Ausrufezeichen wird ohne Probleme durch "*" ersetzt, bei "Klammer auf" geht das leider nicht.
(ebenso übrigens mit Hochkomma " ' " und wahrscheinlich auch nicht mit Klammer zu.

ich wollte es noch mit regex probidrem, aber auf dem Mac scheint es sed -r nicht zu geben.

weiß hier jemand Rat?

Danke schon mal
 

gschoen57

Antonowka
Registriert
17.11.09
Beiträge
356
Danke für den Tip - funktioniert aber leider nicht :(
... auch der Versuch mit awk scheitert:

D=$(echo $C | awk 'gsub("(","*")');
... habe es noch mit tr versucht

D=$(echo $C | tr \( \*;

leider mit demselben negativen Ergebnis. Offensichtlich kann man Klammern überhaupt nicht
ersetzten - zumindest nicht mit einem einfachen Kommando
 
Zuletzt bearbeitet:

sedna

Schweizer Glockenapfel
Registriert
22.10.08
Beiträge
1.375
Hallo,

Code:
sed  's#(#*#g'

Gruß
 

gschoen57

Antonowka
Registriert
17.11.09
Beiträge
356
jou, danke - habs ausprobiert - mit demselben Ergebnis:

unexpected EOF while looking for matching `)'

geht also auch nicht
 

sedna

Schweizer Glockenapfel
Registriert
22.10.08
Beiträge
1.375
Hallo,

naja, dann ist ja wohl die Syntax falsch *gg

Code:
B='(xx'
C=$(echo $B | sed  's#(#*#g')
echo $C

Gruß
 

gschoen57

Antonowka
Registriert
17.11.09
Beiträge
356
... Schande über mich ... Du hattest Recht, meine Syntax war nicht die beste :(

jetzt fehlt mir eigentlich nur noch das Ersetzen des Hochkomma ( ' ) , hast Du da auch eine Lösung?
das hier
D=$(echo $C | sed 's#'#*#g');
fuhktioniert nicht:
" unexpected EOF while looking for matching `'' "
 

sedna

Schweizer Glockenapfel
Registriert
22.10.08
Beiträge
1.375
Code:
sed "s#'#*#g"

Gruß
 

gschoen57

Antonowka
Registriert
17.11.09
Beiträge
356
Dankeschön - so ganz einheitlich finde ich die Syntax nicht.
Funktioniert.