2016-04-20 20 views
0

Ich bekomme einen seltsamen Fehler beim Ersetzen [ mit |. Bitte beachten Sie, dass es einen Platz vor [ gibt. Schließklammer hat nicht das gleiche Problem.Ersetzen <space> [mit sed

# sed -i 's/ ]/|/g' test.txt -->Working 
# sed -i 's/ [/|/g' test.txt --> Not Working 
sed: -e expression #1, char 8: unterminated `s' command 

Irgendwelche Vorschläge?

+0

nur entkommen die Klammer? 'sed -i 's/\ [/ |/g'?' – krork

+1

@krork Sie müssen Backticks in Kommentaren für die Code-Hervorhebung verwenden. –

Antwort

1

Sed erwartet, dass Sie die eckige Klammer schließen, die ein Sonderzeichen ist (Startet eine Zeichenklasse – siehe here, das [list] Beispiel). Wenn Sie es wörtlich verwenden möchten, müssen Sie es entkommen:

sed -i 's/ \[/|/g' test.txt