- Gerar link
- X
- Outros aplicativos
Postagem em destaque
- Gerar link
- X
- Outros aplicativos
Vou apresentar alguns exemplos para reverter a ordem dos caracteres em uma determinada expressão. Para demonstração vou utilizar o arquivo /etc/hosts no qual fica armazenado os apontamentos de hosts do sistema operacional.
shaman@doom:~$ cat /etc/hosts 127.0.0.1 localhost 127.0.1.1 doom guake.local.net # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters
Exemplos:
1. Utilizando o comando rev da biblioteca coreutils.
$ rev /etc/hosts
2. Criando um loop para ler os caracteres de cada linha.
#!/bin/bash while read line; do # Lê a partir do último caractere. for ((i=${#line}; i >= 0; i--)); do # Imprime o caractere. echo -n "${line:$i:1}" done echo done < /etc/hosts # <- arquivo
Utiliza-se o recurso de expansão de variáveis para imprimir somente o caractere da posição armazenada na variável `i`.
3. Utilizando a função string.reverse na biblioteca string.sh.
#!/bin/bash # Importa a biblioteca source string.sh # Função string.reverse "$(< /etc/hosts)"
4. O último e não muito elegante é a implementação com o comando sed.
$ sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//' /etc/hosts
Neste exemplo utiliza-se grupos de captura para deslocar o primeiro caractere da expressão para o final enquanto a expressão restante contida do grupo 2 é repetida e inicia-se um novo ciclo de deslocamento até que não haja mais caracteres.
Todos os exemplos acima produzem o mesmo efeito e retornam a seguinte saída:
tsohlacol 1.0.0.721
ten.lacol.ekaug mood 1.1.0.721
stsoh elbapac 6vPI rof elbarised era senil gniwollof ehT #
kcabpool-6pi tsohlacol-6pi 1::
tenlacol-6pi 0::00ef
xiferptsacm-6pi 0::00ff
sedonlla-6pi 1::20ff
sretuorlla-6pi 2::20ff
Curso Online - Administração de Sistemas Debian: 20 HORAS |
Comentários
Postar um comentário