Removendo caracteres da string em Bash

Removendo caracteres da string em Bash

Às vezes, pode ser necessário remover os caracteres de uma string. Seja qual for o motivo, o Linux fornece várias ferramentas internas e úteis que permitem remover os caracteres de uma string em Bash. Este artigo mostra como usar essas ferramentas para remover os caracteres de uma string.

O artigo cobre como executar o seguinte:

  • Remova o personagem da string usando sed
  • Remova o personagem da string usando awk
  • Remova o caractere da string usando o corte
  • Remova o caractere da string usando TR

Os comandos mostrados neste artigo foram realizados no Ubuntu 20.04 Fossa focal. Os mesmos comandos também podem ser executados em outras distribuições Linux que têm as ferramentas acima disponíveis. Usaremos o aplicativo de terminal padrão para executar os comandos. Você pode acessar o aplicativo de terminal usando o atalho do teclado Ctrl+Alt+T.

Remova os caracteres da string usando sed

SED é uma utilidade poderosa e útil usada para editar fluxos de texto. É um editor de texto não interativo que permite executar manipulações básicas de texto em fluxos de entrada. Você também pode usar sed para remover caracteres indesejados de strings.

Para fins de demonstração, usaremos uma string de amostra e depois a colocaremos no comando sed.

Remova o caractere específico da string

Usando sed, você pode remover um caractere específico de uma string. Por exemplo, para remover "h" da string "olá, como vai?”O comando seria:

$ eco "Olá, como você está?"| sed 's/h //'

Isso apenas removerá a primeira ocorrência de 'h' na string.

Para remover todas as ocorrências de 'h' da string, use o seguinte comando:

$ eco "Olá, como você está?"| sed 's/h // g'

Onde g significa global. Ele removerá todas as ocorrências de 'h' na string.

Remova o primeiro caractere da string

Para remover o primeiro caractere da string “olá, como vai?” O comando seria:

$ eco "Olá, como você está?"| sed 's/^.// '

Onde (.) corresponde exatamente a um único caractere e (^) corresponde a qualquer caractere no início da string.

Remova o último caractere da string

Para remover o último caractere da string “olá, como vai?” O comando seria:

$ eco "Olá, como você está?"| sed 's/.$ // '

Onde (.) corresponde exatamente a um único caractere e ($) corresponde a qualquer caractere no final da string.

Remova o primeiro e o último caractere da string

Para remover o primeiro e o último personagem da string “olá, como vai?” O comando seria:

$ eco "Olá, como você está?"| sed 's/^.//; s/.$ // '

Remova os caracteres da string usando awk

Awk é uma poderosa linguagem de script usada para correspondência de padrões, juntamente com o processamento de texto. AWK permite filtrar e transformar o texto de várias maneiras. Você também pode usar awk para remover os personagens de strings.

Para fins de demonstração, usaremos uma string de amostra e depois a colocaremos no comando AWK.

Remova o primeiro caractere de uma string

Para remover o primeiro caractere da string “olá, como vai?” O comando seria:

$ eco "Olá, como você está?"| Awk 'Print Substr ($ 0, 2)'

Onde ($ 0) é a sequência de destino inteira e (2) é a posição inicial do personagem. O comando acima remove o primeiro caractere, 'H,' Número do caractere '1' e retorna a sequência de destino que começa com o segundo personagem, 'e.'

Remova os dois primeiros caracteres da string

Você também pode remover um número específico de caracteres desde o início de uma string. Por exemplo, para remover os dois primeiros caracteres da string “olá, como vai?” O comando seria:

$ eco "Olá, como você está?"| Awk 'Print Substr ($ 0, 3)'

O comando acima removerá os dois primeiros caracteres, 'He,' ou números de caracteres '1 e 2' e retornará a sequência de destino que começa com o número do personagem '3' ou 'L l.'

Remova o último caractere da string

Para remover o último personagem de “olá, como vai?” O comando seria:

$ eco "Olá, como você está?"|

Onde comprimento ($ 0) -1 significa dedução '1'Do comprimento total do personagem.

O comando acima imprimirá a string começando com o número do personagem '1' até comprimento ($ 0) -1 para tirar o último personagem.

Há '19Os caracteres (incluindo espaços) na string acima. O comando funcionará imprimindo todos os personagens, começando com o personagem '1'e para o caráter'18,'Ao remover o último personagem'19.'

Remova os dois últimos caracteres da string

Para remover os dois últimos personagens de “olá, como vai?”O comando seria:

$ eco "Olá, como você está?"|

Onde comprimento ($ 0) -2 significa dedução '2'Do comprimento total do personagem.

O comando acima imprimirá a string, começando com o número do personagem '1'e até o número do personagem'comprimento ($ 0) -2,'Para remover os dois últimos caracteres na string.

Remova o primeiro e o último caracteres da string

Para remover os primeiros e os últimos caracteres da string “olá, como vai?” O comando seria:

$ eco "Olá, como você está?"|

Onde comprimento ($ 0) -2 significa dedução '2'Do comprimento total do personagem.

O comando acima imprimirá a string, começando com o número do personagem '2'até o número do personagem'comprimento ($ 0) -2,'Remover o primeiro e o último personagem.

Remova o caractere da string usando o corte

Cut é uma ferramenta de linha de comando comumente usada para extrair uma parte do texto de uma string ou arquivo e imprimir o resultado para uma saída padrão. Você também pode usar este comando para remover caracteres de uma string.

Para fins de demonstração, usaremos uma string de amostra e depois a colocaremos no comando de corte.

Remova o primeiro caractere da string

Para remover o primeiro personagem da string, “olá, como vai?” O comando seria:

$ eco "Olá, como você está?"| Cut -C 2-

Este comando imprimirá a string, começando com o segundo caractere, enquanto remove o primeiro caractere.

Remova os quatro primeiros caracteres da string

Para remover os quatro primeiros caracteres da string “olá, como vai?” O comando seria:

$ eco "Olá, como você está?"| Cut -C 5-

Este comando imprimirá a string, começando do quinto personagem, enquanto remove os quatro primeiros caracteres.

Imprimir string entre 2 e 5º caracteres

Para imprimir a string “olá, como vai?” entre o segundo e o quinto personagens, O comando seria:

$ eco "Olá, como você está?"| Cut -C 2-5

Este comando imprimirá a string, começando do segundo caractere e até o quinto personagem, enquanto remove os personagens iniciais e finais restantes.

Remova o último caractere da string

Para remover o último caractere da string “olá, como vai?” use o corte comando com Rev, do seguinte modo:

$ eco "Olá, como você está?"| REV | CUT -C2- | REV

Este comando funciona primeiro revertendo a string, depois cortando o primeiro caractere e finalmente revertendo -o novamente para fornecer a saída desejada.

Remova os últimos quatro caracteres da string

Para remover os últimos quatro caracteres da linha “olá, como vai?” O comando seria:

$ eco "Olá, como você está?"| REV | CUT -C5- | REV

Este comando funciona primeiro revertendo a string, depois cortando os quatro primeiros caracteres e depois revertendo novamente para fornecer a saída desejada.

Remova o primeiro e o último caracteres da string

Para remover os primeiros e os últimos caracteres da string “olá, como vai?” use o corte comando com Rev, do seguinte modo:

$ eco "Hello World!"| Cut -C2- | Rev | Cut -C2- | Rev

Este comando funciona cortando o primeiro caractere, depois revertendo a corda e cortando seu primeiro personagem e depois revertendo novamente para fornecer a saída desejada.

Remova o caractere da string usando TR

O comando TR (abreviação de tradução) é usado para traduzir, espremer e excluir caracteres de uma string. Você também pode usar TR para remover os caracteres de uma string.

Para fins de demonstração, usaremos uma string de amostra e depois a colocaremos para o comando TR.

Remova todas as ocorrências de caráter

Usando o comando TR, você pode remover todas as ocorrências de caracteres minúsculos ou maus. Por exemplo, para remover todas as ocorrências do caractere minúsculo 'h' da string, o comando seria:

$ eco "Olá, como você está?"| tr -d h

Da mesma forma, para remover todas as ocorrências do caractere de maiúsculas 'h' da string, o comando seria:

$ eco "Olá, como você está?"| tr -d h

Você também pode usar sequências interpretadas para remover letras minúsculas ou maiúsculas:

$ eco "Olá, como você está?"| tr -d [: superior:]
$ eco "Olá, como você está?"| tr -d [: inferior:]

Remova todas as ocorrências de caracteres minúsculos e maiúsculos

Você também pode remover todas as ocorrências de caracteres minúsculos e maiúsculos de uma string. Por exemplo, o comando a seguir removerá todas.

$ eco "Olá, como você está?"| tr -d 'hh'

Remova todas as ocorrências de caracteres em um intervalo específico

Para remover todas as ocorrências de caracteres de uma string no intervalo específico 'D-H', o comando seria:

$ eco "Olá, como você está?"| tr -d 'd -h'

Este comando removerá todos os caracteres no intervalo 'd-h' (d, e, f, g, h) na string.

Conclusão

No Linux, sempre haverá mais de uma maneira de realizar um trabalho simples. O mesmo vale para remover caracteres de uma string. Este artigo mostrou quatro maneiras diferentes de fazê -lo, juntamente com alguns exemplos para remover personagens indesejados de uma string. Decidir qual ferramenta usar tudo depende de suas preferências e, mais importante, do que você deseja alcançar.