sed - печатать слова, начинающиеся только с гласной - PullRequest
3 голосов
/ 08 декабря 2011

как отменить этот sed для печати только тех слов, которые НАЧИНАЮТСЯ с гласного? Я пытался вставить в! в приведенной ниже команде sed, но она не работает - я думал, что это просто перевернет правило выше?

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

Ответы [ 3 ]

5 голосов
/ 08 декабря 2011

Вам нужно использовать ^, а не !:

$ echo "Always take a Big Apple " | sed -r 's/\b[^AEIOU ]\w*//ig' 
Always  a  Apple 
2 голосов
/ 08 декабря 2011
sed -r 's/\b[^AEIOUaeiou[:space:]]\w*\b//g'
1 голос
/ 08 декабря 2011

Символ, которого вы хотите отрицать, - ^, а не !:

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

Однако обратите внимание, что ваше регулярное выражение как есть не будет соответствовать a в a Big Apple - это то, что вы хотели?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...