Invertendo strings usando vetores
Publicado por maxshu (última atualização em 17/11/2014)
[ Hits: 6.067 ]
Homepage: programacaocomputador.blogspot.com.br
Hoje trago um simples inversor de strings, mas que possui alguns comandos avançados.
Um colega deste site (truster0) perguntou o seguinte:
Fala pessoal, então não tenho muito conhecimento em shell e preciso fazer este exercicio abaixo:
Faça um script que verifique se um nome é um palíndromo. Uma palavra é um palíndromo se a sua leitura é a mesma da esquerda para a direita e vice versa. Dica: use um array para armazenar a palavra. Exemplo: ARARA, ANA, etc.
Me arrisquei e deu isso mas está dando erro:
#!/bin/bash
echo "Digite a palavra a ser testada"
read palavra
for ((i=o ; i<=tamanho ; i++))do
if ((palavra=palavra[((tamanho-1)-i))]
verifica=1
if(verifica -eq 0)then
echo "Igual de tras pra frente"
else
echo "Diferente de tras pra frente"
fi
No tópico: http://www.vivaolinux.com.br/topico/Shell-Script/Ajuda-com-Shell-Script-7
Então, mandei uma resposta pro problema:
#!/bin/bash
read -p "Digite a palavra a ser testada: " palavra
reverse="$(echo $palavra | rev)"
if [ "$reverse" = "$palavra" ]
then {
echo "Igual de tras pra frente"
}
else {
echo "Diferente de tras pra frente"
}
fi
Este é um script simples, pois usa comandos conhecidos do shell Linux. Mas o colega, não conformado com a solução, pediu que o script fosse iterado caractere por caractere. Então, resolvi elaborar um script mais avançado.
Pessoal, este script é muito simples, mas poderoso quando queremos compara caracteres individuais.
#!/bin/bash read -p "Digite a palavra a ser testada: " palavra cont0=1 cont1=$(echo $palavra | wc -m) contchar=$(echo "$cont1-$cont0" | bc) for(( i=1; i <= $contchar; i++ )) do c1[$i]=$(echo "$palavra" | cut -b $i) done h=$(echo "$contchar+$cont0" | bc) for(( k=1; k<=$contchar; k++ )) do j=$(echo "$h-$k" | bc) c2[$j]=$(echo ${c1[$k]}) done if [ "$(echo ${c2[@]})" == "$(echo ${c1[@]})" ] then { echo "Igual de tras pra frente" } else { echo "Diferente de tras pra frente" } fi
Converter Wav para MP3 usando Lame e PPSS para multi processamento via shell script - Asterisk
Gerar senhas aleatórias de qualquer tamanho
Auto-installer ISP Config 3 - FC 11
Verifica últimos arquivos criados
Fluxbox - Slideshow de wallpapers aleatórios
Wayland em alta, IA em debate e novos ventos para distros e devices
Qt 6.10 e Python 3.14 puxam o ritmo do software livre nesta quarta
Atualizações de Apps, Desktop e Kernel agitam o ecossistema Linux nesta terça-feira
Miyoo Mini Plus + Onion OS (Linux)
IA local no bolso, novo visual no Raspberry Pi OS e mais destaques do software livre
Como mudar o nome de dispositivos Bluetooth via linha de comando
Adicionando o repositório backports no Debian 13 Trixie
queria saber como instalar o android power tools igual ao winux no lin... (7)
Como listar os arquivos em "bloquin... [RESOLVIDO] (6)
Como colocar atalho para uma pasta na área de trabalho do Ubuntu 24.04... (2)