shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script-pt] Replicar string


From: Fernando Mercês
Subject: Re: [shell-script-pt] Replicar string
Date: Fri, 6 May 2022 16:16:36 +0000

Bom dia!

 

Com o sed, você pode montar uma regex num grupo de captura (com os parênteses) que exclua o separador de campos, que no seu caso é o ponto-e-vírgula, mas colocá-lo no fim da regex, pra substituir só o primeiro campo:

 

| sed 's/Password=\([^;]*\);/Password=SENHA;/'

 

Aí é só adaptar para o Host e outros campos que quiser, caso queira fazer um por um, ou até fazer tudo numa só chamada ao sed, separando as expressões por ponto-e-vírgula também (não confundir com o ponto-e-vírgula que é o separador de campos na sua string):

 

| sed 's/Password=\([^;]*\);/Password=SENHA;/; s/Host=\([^;]*\);/Host=HOST;/'

 

Uma outra opção seria ler o scampos separados por ponto-e-vírgula e trabalhar neles à vontade num loop:

 

% while IFS=\; read -r id senha host porta banco; do

    # aqui vc vai ter $id meio zoado porque vai ter o “"DBHost": junto, mas é só tirar

    # vai ter também $senha, $host, $porta e $banco

    # aí é só fazer as substituições que quiser e depois echoar (perdão pelo neologismo) uma string com os campos separados por ponto-e-vírgula

done < SEUARQUIVO.TXT

 

E certamente há outras opções. :)

 

Abraço,

Fernando

 

 

From: shell-script-pt <shell-script-pt-bounces+nandu88=gmail.com@nongnu.org> on behalf of Eldimar Souza <eldimax@gmail.com>
Date: Friday, 6 May 2022 11:03
To: Lista brasileira de usuários de shell script <shell-script-pt@nongnu.org>
Subject: [shell-script-pt] Replicar string

Bom dia, pessoal.  espero que estejam todos bem.

 

 Gostaria de trocar uma string de conexão em um arquivo porém não estou obtendo sucesso, pois minhas tentativas acrescentam a linha junto a string existente ou nada acontece,.

 

  As linhas seriam como no exemplo abaixo:

Substituir isso

   "DBHost": "User ID=umacois_aqulquer;Password=hsun49wdl0P;Host=qualquer-hos-jsbr.com.br;Port=7654;Database=qualquerdatabase;"

Por isso
"DBHost": "User ID=qualquercoisa;Password=qualquersenha;Host=qualquerhost-34dg.com.br;Port=63674;Database=qualquerdatabase;"

 

Obs: a string contém espaços, caracteres especiais na senha e números e letras no host

--

  ºvº     "Software Livre: não é pelo dinheiro.

/( _ )\    É uma questão de consciência."

 ^  ^


reply via email to

[Prev in Thread] Current Thread [Next in Thread]