как отменить этот sed для печати только тех слов, которые НАЧИНАЮТСЯ с гласного? Я пытался вставить в! в приведенной ниже команде sed, но она не работает - я думал, что это просто перевернет правило выше?
echo "Always take a Big Apple " | sed -r 's/\b[AEIOUaeiou]\w*//g'
Вам нужно использовать ^, а не !:
^
!
$ echo "Always take a Big Apple " | sed -r 's/\b[^AEIOU ]\w*//ig' Always a Apple
sed -r 's/\b[^AEIOUaeiou[:space:]]\w*\b//g'
Символ, которого вы хотите отрицать, - ^, а не !:
echo "Always take a Big Apple " | sed -r 's/\b[^AEIOUaeiou]\w*//g'
Однако обратите внимание, что ваше регулярное выражение как есть не будет соответствовать a в a Big Apple - это то, что вы хотели?
a
a Big Apple