2016-04-20 2 views
0

Я получаю странную ошибку при замене [ на |. Обратите внимание, что есть место до [. Закрывающая скобка не имеет такой же проблемы.Заменить <space> [using 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 

Любое предложение?

+0

просто уйти из скобки? 'sed -i 's/\ [/ |/g'?' – krork

+1

@krork Вам нужно использовать обратные ссылки в комментариях для выделения кода. –

ответ

1

Sed ожидает, что вы закрываете квадратную скобку, которая является специальным символом (начинается класс символов – см. here, пример [list]). Если вы хотите использовать его в буквальном смысле, вам нужно сбежать от него:

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