sed - 打印仅以元音开头的单词

时间:2011-12-08 11:00:30

标签: bash sed

你如何反转这个sed只打印用元音开头的打印单词?我试过投入!在下面的sed命令但它不起作用 - 我认为这只会颠倒上面的规则?

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

3 个答案:

答案 0 :(得分:5)

您需要使用^而不是!

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

您正在寻找否定字符类的字符是^,而不是!

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

但请注意,您的正则表达式与a中的a Big Apple不匹配 - 这是您的意图吗?