Excluir último caractere de uma string específica e adicionar outros caracteres no final.

1. Excluir último caractere de uma string específica e adicionar outros caracteres no final.

Leonardo Lazzari
Lazzarii

(usa Kali)

Enviado em 25/01/2018 - 16:02h

Alguém poderia me fazer um código para edição de um arquivo .txt (Via sed/Linux)? Eu tentei mas não consegui :P

Segue o exemplo:
|C485|06|5,68|0|0|||0|209594||
|C485|06|5,68|0|0|||0|209594||
|C485|01|8,1|8,1|7,6|||0,62|209616||
|C485|01|8,1|8,1|7,6|||0,62|209616||
|C485|01|17,4|17,4|7,6|||1,32|209643||
|C485|01|17,4|17,4|7,6|||1,32|209643||
|C485|01|2,5|2,5|7,6|||0,19|209856||
|C485|01|2,5|2,5|7,6|||0,19|209856||
|C244|06|4,88|0|0|||0|209860||
|C485|06|4,88|0|0|||0|209860||
|C132|06|4,39|0|0|||0|209861||
|C485|06|4,39|0|0|||0|209861||
|C481|01|1,59|1,59|7,6|||0,12|209926||
|C485|01|1,59|1,59|7,6|||0,12|209926||
|C485|01|5,79|5,79|7,6|||0,44|209966||
|C485|01|5,79|5,79|7,6|||0,44|209966||
|C485|06|2,52|0|0|||0|209978||
|C481|06|2,52|0|0|||0|209978||

Preciso remover o último caracter " | " e adicionar no seu lugar os caracteres " 408| " em todas linhas, sendo essas linhas, iniciadas em " |C485| " ou " |C481|".

Ficando asssim:
|C485|06|5,68|0|0|||0|209594|408|
|C485|06|5,68|0|0|||0|209594|408|
|C485|01|8,1|8,1|7,6|||0,62|209616|408|
|C485|01|8,1|8,1|7,6|||0,62|209616|408|
|C485|01|17,4|17,4|7,6|||1,32|209643|408|
|C485|01|17,4|17,4|7,6|||1,32|209643|408|
|C485|01|2,5|2,5|7,6|||0,19|209856|408|
|C485|01|2,5|2,5|7,6|||0,19|209856|408|
|C244|06|4,88|0|0|||0|209860||
|C485|06|4,88|0|0|||0|209860|408|
|C132|06|4,39|0|0|||0|209861||
|C485|06|4,39|0|0|||0|209861|408|
|C481|01|1,59|1,59|7,6|||0,12|209926|408|
|C485|01|1,59|1,59|7,6|||0,12|209926|408|
|C485|01|5,79|5,79|7,6|||0,44|209966|408|
|C485|01|5,79|5,79|7,6|||0,44|209966|408|
|C485|06|2,52|0|0|||0|209978|408|
|C481|06|2,52|0|0|||0|209978|408|

Se algúem conseguir, ficarei grato!


  


2. Re: Excluir último caractere de uma string específica e adicionar outros caracteres no final.

Slackjeff
slackjeff

(usa Slackware)

Enviado em 25/01/2018 - 16:28h

cat arq.txt | sed 's/|/408|/g'


To no cel, se retornar algum erro precisa escapar os caracteres | ...

cat arq.txt | sed 's/\|/408\|/g'

uma coisa, poderia ser usado o sed direitamete no arquivo sem precisar do cat, porém para melhor entendimento fica melhor neste formato que passei


Meu canal youtube:
https://goo.gl/ZcWSaB
Meu Site:
http://slackjeff.emmilinux.com.br/








3. Não foi esse.

Leonardo Lazzari
Lazzarii

(usa Kali)

Enviado em 25/01/2018 - 16:46h

Todos " | " foram substituidos por " 408| ", não somente o final das linhas que iniciam com "|C485|" e "|C481|" (Que seria o objetivo)


4. Re: Excluir último caractere de uma string específica e adicionar outros caracteres no final.

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 25/01/2018 - 17:06h

v aí se te ajuda

sed '/C485\|C481/ s/|*$/|408/g' txt.txt 


------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



5. Re: Excluir último caractere de uma string específica e adicionar outros caracteres no final.

Slackjeff
slackjeff

(usa Slackware)

Enviado em 25/01/2018 - 17:43h

É eu li beeeeeeem errado entao.
Faz o que o taz 10 fez que a lógica é pra funfa


Meu canal youtube:
https://goo.gl/ZcWSaB
Meu Site:
http://slackjeff.emmilinux.com.br/








6. Re: Excluir último caractere de uma string específica e adicionar outros caracteres no final.

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 25/01/2018 - 19:13h

$ sed '/C485\|C481/ s/|$/408|/' arquivo.txt

|C485|06|5,68|0|0|||0|209594|408|
|C485|06|5,68|0|0|||0|209594|408|
|C485|01|8,1|8,1|7,6|||0,62|209616|408|
|C485|01|8,1|8,1|7,6|||0,62|209616|408|
|C485|01|17,4|17,4|7,6|||1,32|209643|408|
|C485|01|17,4|17,4|7,6|||1,32|209643|408|
|C485|01|2,5|2,5|7,6|||0,19|209856|408|
|C485|01|2,5|2,5|7,6|||0,19|209856|408|
|C244|06|4,88|0|0|||0|209860||
|C485|06|4,88|0|0|||0|209860|408|
|C132|06|4,39|0|0|||0|209861||
|C485|06|4,39|0|0|||0|209861|408|
|C481|01|1,59|1,59|7,6|||0,12|209926|408|
|C485|01|1,59|1,59|7,6|||0,12|209926|408|
|C485|01|5,79|5,79|7,6|||0,44|209966|408|
|C485|01|5,79|5,79|7,6|||0,44|209966|408|
|C485|06|2,52|0|0|||0|209978|408|
|C481|06|2,52|0|0|||0|209978|408|



7. Obrigado pela ajuda!

Leonardo Lazzari
Lazzarii

(usa Kali)

Enviado em 26/01/2018 - 14:34h

Não deu muito certo, mas valeu a tentativa hehe.
10 mil linhas para fazer manualmente.


8. Re: Excluir último caractere de uma string específica e adicionar outros caracteres no final.

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 26/01/2018 - 14:49h

Lazzarii escreveu:

Não deu muito certo, mas valeu a tentativa hehe.
10 mil linhas para fazer manualmente.


o comando q te passei funcionou aqui perfeitamente .. o q não funcionou aí ???

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts