Manipulação de strings no bash

Publicado por Vitor Luis em 15/03/2013

[ Hits: 68.639 ]

Blog: http://howtolinux.com.br/

 


Manipulação de strings no bash



No bash, quando você usa um cifrão ($) seguido por um nome de variável, o shell expande a variável com o seu valor. Este recurso é chamado de "expansão de parâmetros".

Mas a expansão de parâmetros tem muitas outras formas que permitem expandir um parâmetro e modificar o valor, ou a substituir outros valores em processo de expansão.

Nesta dica, vamos ver como aplicar o conceito de expansão de parâmetros para operações de manipulação de strings.

Tamanho de uma string

Para sabermos o tamanho da string, devemos colocar o caractere "#" no processo de expansão de parâmetros:

${#string}

Vejamos um exemplo abaixo:

#!/bin/bash
VAR="Bem vindo ao HOW TO Linux"
echo ${#VAR}


Devemos ter como saída o tamanho da string, que no caso, é 25.

Extraindo uma substring

O bash nos fornece diversos métodos para fazermos a extração de substrings, a primeira é mais simples, fornecendo apenas a string e a posição de início:

${string:posicao}

E também podemos fornecer o tamanho da substring:

${string:posicao:tamanho}

Vejamos agora um exemplo de utilização:

#!/bin/bash
STR="HOW TO Linux"
echo ${STR:0:6}
echo ${STR:7}


Devemos ter uma saída como esta:
HOW TO
Linux

Procurando e substituindo Strings

O bash também suporta fazer o famoso "find and replace". E temos essa opção de dois modos, substituindo a primeira ocorrência, e substituindo todas as ocorrências. Vejamos:

Substituindo a primeira ocorrência:

${string/procura/substitui}

Substituindo todas as ocorrências:

${string//pesquisa/substitui}

Vejamos agora, exemplos:

#! /bin/bash
ARQ="bash.string.txt"
echo "Depois da Substituição:" ${ARQ/str*./operacao.}


Devemos ter uma saída como essa:
Depois da Substituição: bash.operacao.txt


Agora, substituindo todas as ocorrências:

#! /bin/bash
STR="Caminho do bash é /bin/bash"
echo "Depois de Substituir:" ${STR//bash/sh}


Devemos ter uma saída como essa:
Depois de Substituir: Caminho do sh é /bin/sh


Essa dica foi retirada do meu blog:
Espero que gostem.
Abraços!

Outras dicas deste autor

Compilando PHP 5.4.X no Debian/Ubuntu

Split de String em C++

Shell script - Variáveis especiais

Leitura recomendada

Utilizando o pastebin pelo terminal Linux

Problema ao criar scripts com Kommander 1.3 no Slackware Linux?

Minha solução para monitorar múltiplos termômetros no Slackware

Twittar via terminal no Linux

Wallpaper Slideshow no LXDE

  

Comentários
[1] Comentário enviado por lcavalheiro em 17/03/2013 - 22:26h

Boa!

[2] Comentário enviado por VitorLuis em 19/03/2013 - 08:55h

Vlw cara!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts