2017-11-15 2 views
0

In dem folgenden Beispiel möchte ich das * Metazeichen in der Zeichenfolge ersetzen. Wenn ich richtig verstehe, soll ich in der Lage sein, den Charakter mit \ zu entkommen, aber nach, dass dies tut, ist das Ergebnis, das ich zu sehen bin:sed - wie Meta-Zeichen zu ersetzen

❯ echo 'foo(*)' | sed s/foo\(\*/bar/g 
bar*) 

Ich erwarte folgendes zu sehen:

❯ echo 'foo(*)' | sed s/foo\(\*/bar/g 
bar) 

Antwort

2

Sie benötigen sed Befehl zu zitieren:

echo 'foo(*)' | sed 's/foo(\*/bar/g' 
bar) 
+3

... und nicht zitieren '(', es sei denn, Sie '-E' /' -r'. –