Como inserir uma string dentro de um arquivo entre 2 palavras !!! [RESOLVIDO]

1. Como inserir uma string dentro de um arquivo entre 2 palavras !!! [RESOLVIDO]

Diego Pires
Diegomontesiaopi

(usa Debian)

Enviado em 15/06/2021 - 20:25h

Como inserir uma string dentro de um arquivo entre 2 palavras !!!
Exemplo

111 222 333
222 222 222
333 333 333
444 444 444

Teria que ficar assim:
111 222 333
222 222 PALAVRA NOVA 222
333 333 333
444 444 444


  


2. Re: Como inserir uma string dentro de um arquivo entre 2 palavras !!! [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 16/06/2021 - 01:29h


Diegomontesiaopi escreveu:

Como inserir uma string dentro de um arquivo entre 2 palavras !!!
Exemplo

111 222 333
222 222 222
333 333 333
444 444 444

Teria que ficar assim:
111 222 333
222 222 PALAVRA NOVA 222
333 333 333
444 444 444

Segue:
sed 's/222$/NOVA PALAVRA &/' texto.txt
Obs.: Casei o 222 do final da linha,
Traduzindo:
Na linha que termina com 222,
coloque "PALAVRA NOVA", antes desse 222.
Outra forma, parecida com a anterior.
sed '/^222/s/222$/NOVA PALAVRA &/' texto.txt
Na linha que inicia com 222,
coloque "PALAVRA NOVA", antes do 222 do final da linha.
OBS.: O &, indica que é para "printar" o que casou..., no caso, 222



______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
O qual, "filtra" a página: "https://www.vivaolinux.com.br/termos-de-uso/",
Mostrando o seguinte:

Se você sanou sua dúvida ou resolveu um problema a partir de um
tópico criado, é extremamente recomendável que acesse o tópico e
marque-o como "RESOLVIDO". E mais recomendável ainda que você eleja
como melhor resposta a que mais lhe ajudou.


______________________________________________________________________



3. Segue

Diego Pires
Diegomontesiaopi

(usa Debian)

Enviado em 16/06/2021 - 09:47h


Bom dia,
Estou executando o comando mas não esta dando certo:

Variável:
TOKENREQUEST=eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCIsIng1dCI6IlMxRFJFM0lFZEhReWcwSlhhW

Arquivo:
<v1:version>1</v1:version>
<v1:jwt>colocar aqui no meio</v1:jwt> -- colocar aqui no meio
</v1:tefHeader>
</soapenv:Header>

Comando:
sed -i 's/<v1:jwt>$/$TOKENREQUEST &/' in.xml


4. Re: Como inserir uma string dentro de um arquivo entre 2 palavras !!! [RESOLVIDO]

Diego Mendes Rodrigues
diegomrodrigues

(usa Ubuntu)

Enviado em 16/06/2021 - 13:26h

Segue um script em Python para colocar o token numa TAG.

Arquivo entrada.txt:
<v1:version>1</v1:version>
<v1:jwt></v1:jwt>
</v1:tefHeader>
</soapenv:Header>


Script Python:
'''
Colocar o token dentro de uma tag
'''
arquivo_entrada = open('entrada.txt', 'r')
arquivo_saida = open('saida.txt', 'w')

TOKENREQUEST = 'eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCIsIng1dCI6IlMxRFJFM0lFZEhReWcwSlhhW'
buscar = '<v1:jwt>'

for linha in arquivo_entrada:
linha_saida = linha.replace(buscar, buscar + TOKENREQUEST)
arquivo_saida.write(linha_saida)

arquivo_entrada.close()
arquivo_saida.close()


Arquivo saida.txt:
<v1:version>1</v1:version>
<v1:jwt>eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCIsIng1dCI6IlMxRFJFM0lFZEhReWcwSlhhW</v1:jwt>
</v1:tefHeader>
</soapenv:Header>


Atenciosamente,
Diego M. Rodrigues


5. Reposta

Diego Pires
Diegomontesiaopi

(usa Debian)

Enviado em 16/06/2021 - 18:04h


Consegui fazer com sed.

mas no lugar de -- 222TOKENREQUEST
queria colocar o resultado de uma variável

variável: echo $TOKENREQUEST

sed "s/<\/v1:jwt>$/222TOKENREQUEST&/" teste_tst.xml

Resultado comando:
sed "s/<\/v1:jwt>$/222TOKENREQUEST&/" teste_tst.xml
<v1:version>1</v1:version>
<v1:jwt>TOKENREQUEST222TOKENREQUEST</v1:jwt>
<222><222>
</v1:tefHeader>
</soapenv:Header>



6. Re: Como inserir uma string dentro de um arquivo entre 2 palavras !!!

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 16/06/2021 - 20:02h

Diegomontesiaopi escreveu:


Bom dia,
Estou executando o comando mas não esta dando certo:

Variável:
TOKENREQUEST=eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCIsIng1dCI6IlMxRFJFM0lFZEhReWcwSlhhW

Arquivo:
<v1:version>1</v1:version>
<v1:jwt>colocar aqui no meio</v1:jwt> -- colocar aqui no meio
</v1:tefHeader>
</soapenv:Header>

Comando:
sed -i 's/<v1:jwt>$/$TOKENREQUEST &/' in.xml


Boa noite.
Para usar "var" com o sed, lembre-se:
--------------------------------------------------
ASPAS SIMPLES não resolvem a "$var",
echo '$var'
$var
-------------------------------------------------

portanto, use aspas duplas no sed , ou, aspas simples na '$var'.
Resumindo:
sed -i 's/<v1:jwt>/& '${TOKENREQUEST}'/' in.xml
Ou
sed -i "s/<v1:jwt>/& ${TOKENREQUEST}/" in.xml


______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
O qual, "filtra" a página: "https://www.vivaolinux.com.br/termos-de-uso/",
Mostrando o seguinte:
Se você sanou sua dúvida ou resolveu um problema a partir de um
tópico criado, é extremamente recomendável que acesse o tópico e
marque-o como "RESOLVIDO". E mais recomendável ainda que você eleja
como melhor resposta a que mais lhe ajudou.

______________________________________________________________________