sed - 只删除带元音的单词

时间:2011-12-08 09:51:59

标签: regex bash sed substitution

我正在尝试删除所有以元音开头的单词,如下所示。我所拥有的sed命令只删除第一个单词,如果它有元音,而不是任何其他单词。我认为下面的边界标记并使用g将捕获所有单词,但它没有这样做。如何通过元音获得所有单词?

echo "Always take a Big Apple " | sed -r 's/\b^[AEIOUaeiou]\w*//g'

3 个答案:

答案 0 :(得分:5)

删除^

sed -r 's/\b[AEIOUaeiou]\w*//g'

你不需要将它锚定到行的开头,足以让你请求它在单词边界上。

答案 1 :(得分:1)

echo "Always take a Big Apple " | sed -r 's/\b[AEIOUaeiou]\w*//g' 

答案 2 :(得分:1)

这个GNU sed解决方案可能适合您:

echo "Always take a Big Apple " | sed 's/\<[aeiou]\w*//Ig'