使用 sed 删除完全匹配的单词

Jos*_*muk 5 sed

我想从字符串中删除单词“foggy”。它失败。为什么?

echo 'foggy light' | sed 's/\<foggy\>//g'
Run Code Online (Sandbox Code Playgroud)

use*_*own 11

在上面的字符串中,您不需要词首/词尾标记,您可以使用:

echo 'foggy light' | sed 's/foggy//g'
Run Code Online (Sandbox Code Playgroud)

对于评论中的附加问题:

确实,我的 sed 版本

sed --version
sed (GNU sed) 4.2.2
Run Code Online (Sandbox Code Playgroud)

支持语法 \<...\>

echo 'foggy foggylight' | sed 's/\<foggy\>//g'
foggylight
Run Code Online (Sandbox Code Playgroud)

如果它不适合您,请报告您的 sed 版本并阅读其联机帮助页。对于我的 sed,此语法也适用:

echo 'foggy foggylight' | sed 's/\bfoggy\b//g'
foggylight
Run Code Online (Sandbox Code Playgroud)

\b可以记为边界