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

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

Re: [shell-script] sed replace na primeira e segunda ocorrência após str


From: T.Collons
Subject: Re: [shell-script] sed replace na primeira e segunda ocorrência após string
Date: Thu, 29 Mar 2018 00:13:27 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0

Te respondo en castellano.


El Maestro Julio te dio una solución porque tu explicación ha sido bastante mala

yo te doy otra mas extensa por lo que pienso pides:

cat tu_archivo | sed 's/\=/\=\<td\>/;s/\,/\<\/td\>\<td>/1'|sed 's/\,/\<\/td\>\<td>/1'> tu_archivo-modificado


El 28/03/18 a les 21:22, address@hidden [shell-script] ha escrit:
 

Olá pessoal, tudo bem?

Preciso de uma ajuda. Tenho uma string e preciso fazer algumas substituições.

A string está estruturada assim:

ADDITEM=(número entre 1 e 99999),(número entre 1 e 99999),(qualquer caractere alfanumérico ou não, visível,incluindo ponto,vírgula, exclamação, interrogação, etc)&(repetição do padrão iniciando com ADDITEM)

Esta é a string original:

ADDITEM=24720,1,BITS PHIL.CTPOHR N2 X  70MM C/10&ADDITEM=24722,1,BITS PHIL.CTPOHR N2 X 127MM C/10&ADDITEM=24723,1,BITS PHIL.CTPOHR N2 X 150MM C/10&ADDITEM=24724,1,BITS PHIL.CTPOHR TITAN.2X25MM C/10&ADDITEM=24725,1,BITS PHIL.CTPOHR TITAN.2X50MM C/10&ADDITEM=14862,10,BITS PHIL.MAKITA N,1 X 25MM / 656&ADDITEM=14863,20,BITS PHIL.MAKITA N,2 X 25MM / 657&ADDITEM=20026,20,BITS PHIL.MAKITA N,3 X 25MM / 65 &ADDITEM=14865,10,BITS PHIL.MAKITA N.1 X 50MM / 666&ADDITEM=14866,10,BITS PHIL.MAKITA N.2 X 50MM / 667

Preciso substituir a primeira e a segunda vírgula após ADDITEM, ambas por </td><td>

Não posso simplesmente pedir ao sed para substituir todas as vírgulas pois há produtos que tem vírgula na descrição.

Ao final a string ficará assim:

<tr><td>24720</td><td>1</td><td>BITS PHIL.CTPOHR N2 X  70MM C/10</td><td>24722</td><td>1</td><td>BITS PHIL.CTPOHR N2 X 127MM C/10</td><td>24723</td><td>1</td><td>BITS PHIL.CTPOHR N2 X 150MM C/10</td><td>24724</td><td>1</td><td>BITS PHIL.CTPOHR TITAN.2X25MM C/10</td><td>24725</td><td>1</td><td>BITS PHIL.CTPOHR TITAN.2X50MM C/10</td><td>14862</td><td>10</td><td>BITS PHIL.MAKITA N,1 X 25MM / 656</td><td>14863</td><td>20</td><td>BITS PHIL.MAKITA N,2 X 25MM / 657</td><td>20026</td><td>20</td><td>BITS PHIL.MAKITA N,3 X 25MM / 65 </td><td>14865</td><td>10</td><td>BITS PHIL.MAKITA N.1 X 50MM / 666</td><td>14866</td><td>10</td><td>BITS PHIL.MAKITA N.2 X 50MM / 667</tr>


Quanto às substituições no início e no final da string nenhum problema. O uso do sed com ^ e $ resolvem a questão.


O ponto é identificar a primeira e a segunda vírgula após ADDITEM e fazer a substituição.


Alguém consegue me ajudar?


--



Pere

address@hidden




------------------------------------

AVIS LEGAL

Nota de confidencialitat: Aquest missatge podria contenir missatges d'empresa i altre informació confidencial tutelada per les lleis de Europea i altres estats, Si Vostè el rep per error o sense ser una de les persones esmenades a la capçalera, haurà de destruir-lo sense copiar-lo ni revelar-l'ho o qualsevol altre acció relacionada amb el contingut del missatge i notificar-ho per correu electrònic a l'emissor del missatge.

Les persones o entitats que incompleixin els deures de confidencialitat podran ésser perseguides davant dels Tribunals de Justícia sota l'empar de la legislació civil, penal i administrativa nacional i internacional.  

Gracies per la seva cooperació.

------------------------------------

LEGAL NOTICE

Confidentiality notice: This mail may include business and other confidential information protected under the laws of and other territories. if you are not one of the intended recipients of the message, you are legally obliged to delete the message content. Furthermore, you are kindly requested to report immediately the incident to the sender.

Breach of confidentiality duties is a serious criminal offence in and other territories. Offenders shall be legally prosecuted worldwide. 

Thank you for your cooperation.




reply via email to

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