
Estou tentando criar uma calculadora latina de porco, mas estou preso em uma determinada parte. Digamos que eu tenha a string “apple”. Para converter isso você simplesmente adicionaria "way" ao final, dando-lhe "appleway". Atualmente tenho essa parte pronta.
O que estou preso é algo como a string "esportes". Para isso você pega as consoantes antes da primeira vogal, coloca-as no final e adiciona "ay" dando "ortsspay".
Estou tendo problemas para descobrir como posso colocar as consoantes antes da primeira vogal para converter a string corretamente.
Responder1
Com bash
expansão de parâmetros:
${var%%[AaEeIiOoUu]*}
- O padrão
[AaEeIiOoUu]*
avidamente (%%
) remove a parte correspondente da variávelvar
da direita, aqui começando com qualquer vogal maiúscula ou minúscula ([AaEeIiOoUu]
) seguida por qualquer coisa (*
)
Exemplo:
$ var=sports
$ echo "${var%%[AaEeIiOoUu]*}"
sp
$ var=foobar
$ echo "${var%%[AaEeIiOoUu]*}"
f
Responder2
$ echo "sports" | sed 's/.*\([a-z]\)[aeiouAEIOU].*/\1/'
p
muitos curingas;
$ echo "spozzzzzzzzzo" | sed 's/\([a-z]\)[aeiouAEIOU].*/\1/'
sp
@Fiximan, não tenho certeza sobre isso;
$ echo "spozzzzzzzzzo" | sed 's/\(b-df-hj-np-tv-z\{1,\}\)[aeiou].*/\1/'
spozzzzzzzzzo
@Sundeep, sim, isso funciona ...
$ echo "spozzzzzzzzzo" | sed 's/\([^aeiou]*\).*/\1/i'
sp
Devo dizer que prefiro heemayl's, raw bash +1, legal!