我试图删除所有以元音开头的单词,如下所示。我有的sed命令只会删除第一个单词,如果它有一个元音,而不是其他的。我认为下面的边界标记和使用g
会捕获所有单词,但它没有这样做。我怎样才能让它获得元音的所有单词?sed - 只删除元音的字
echo "Always take a Big Apple " | sed -r 's/\b^[AEIOUaeiou]\w*//g'
我试图删除所有以元音开头的单词,如下所示。我有的sed命令只会删除第一个单词,如果它有一个元音,而不是其他的。我认为下面的边界标记和使用g
会捕获所有单词,但它没有这样做。我怎样才能让它获得元音的所有单词?sed - 只删除元音的字
echo "Always take a Big Apple " | sed -r 's/\b^[AEIOUaeiou]\w*//g'
删除^
sed -r 's/\b[AEIOUaeiou]\w*//g'
你不需要将它锚定到行的开头,以至于你要求它是字边界上。
谢谢迈克尔 - 我以为^必须让所有的单词“开始”与一个元音 - 显然不是然后 – frodo
echo "Always take a Big Apple " | sed -r 's/\b[AEIOUaeiou]\w*//g'
谢谢... ...怎么做你反转这只打印打印单词,然后开始与元音?我尝试过放入!上面但它不起作用,但我认为这只会颠倒上面的规则? – frodo
@frodo:'sed -r's/\ b [^ AEIOUaeiou] \ w * // g'' –
这GNU sed的解决方案可能会为你工作:
echo "Always take a Big Apple " | sed 's/\<[aeiou]\w*//Ig'
相关:[sed的 - 以元音开始打印的话只(http://stackoverflow.com/questions/8429901/sed -print-words-that-start-with-a-vowel-only) – razlebe