Pular para o conteúdo

Manipulação de strings no bash

Dica publicada em Shell Script / Miscelânea
Vitor Luis VitorLuis
Hits: 69.716 Categoria: Shell Script Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar

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!

Shell script - Variáveis especiais

Compilando PHP 5.4.X no Debian/Ubuntu

Split de String em C++

Instalar o Unity 3D Web Player no Linux

Copiar uma página do MAN para texto simples sem os ^H^_

CheckDNS - Verificador de DNS

Kermit e comandos AT

SBoupgrade - Atualize seu SlackBuild!

#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

Entre na sua conta para comentar.