Я хочу удалить слово «туманный» из строки. Это не удается. Почему?
echo 'foggy light' | sed 's/\<foggy\>//g'
В вышеупомянутой строке Вам не нужны start-of-word/end-of-word маркеры, и можно использовать:
echo 'foggy light' | sed 's/foggy//g'
Для дополнительного вопроса в комментарии:
Indeeed, моя sed версия
sed --version
sed (GNU sed) 4.2.2
поддерживает Синтаксис с \<...\>
echo 'foggy foggylight' | sed 's/\<foggy\>//g'
foggylight
Если это не работает на Вас, сообщает о Вашей sed версии и читает свою страницу справочника. Для моего sed этот синтаксис работает также:
echo 'foggy foggylight' | sed 's/\bfoggy\b//g'
foggylight
\b
может быть запомнен как граница.