Pular para o conteúdo

Manipulação de strings no bash

Dica publicada em Shell Script / Miscelânea
Vitor Luis VitorLuis
Hits: 69.714 Categoria: Shell Script Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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}
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.


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!

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Shell script - Variáveis especiais

Split de String em C++

Compilando PHP 5.4.X no Debian/Ubuntu

Renomeando arquivos de maiúsculo para minúsculo

Solução IM para seu Cyber Cafe

Compactando diretórios e transferindo via pipe por SSH

Recuperando posição do cursor na última linha editada no VIM

Clonezilla Live no pendrive ou HD externo

#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.