Manipulação de strings no bash

Publicado por Vitor Luis em 15/03/2013

[ Hits: 68.670 ]

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

Comunicação entre aplicativos com o qdbus no KDE 4

OMNI-bot para Enemy Territory - Scripts para facilitar o uso

Trocando letrinhas em segundos (sed)

Curso Grátis de Dialog [vídeo]

Excluindo arquivos por data: find + xargs + rm

  

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