[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [shell-script] Re: Ajuda com regex e laço
From: |
Marcio Gil |
Subject: |
RE: [shell-script] Re: Ajuda com regex e laço |
Date: |
Mon, 15 Feb 2010 23:19:48 -0200 |
Veja se isto resolve:
$ t='<cProd>001</cProd><xProd>Nome do
Produto</xProd><pICMS>18</pICMS><vICMS>201.40</vICMS><cProd>002</cPr
od><xProd>Nome do outro
produto</xProd><pICMS>19</pICMS><vICMS>203.50</vICMS>...'
Primeiro colocamos as tags de produto no início das linhas:
$ echo $t | sed 's/<cProd>/\n&/g'
<cProd>001</cProd><xProd>Nome do
Produto</xProd><pICMS>18</pICMS><vICMS>201.40</vICMS>
<cProd>002</cProd><xProd>Nome do outro
produto</xProd><pICMS>19</pICMS><vICMS>203.50</vICMS>...
No seu caso é
$ sed 's/<cProd>/\n&/g' nome_do_arquivo
Depois basta fazer a filtragem:
$ echo $t | sed 's/<cProd>/\n&/g' | sed -n
's/<cProd>\([^<]*\).*<pICMS>\([^<]*\).*<vICMS>\([^<]*\).*/nome_do_ar
quivo:\1:\2:\3/p'
nome_do_arquivo:001:18:201.40
nome_do_arquivo:002:19:203.50
ou
sed 's/<cProd>/\n&/g' nome_do_arquivo | sed -n
's/<cProd>\([^<]*\).*<pICMS>\([^<]*\).*<vICMS>\([^<]*\).*/nome_do_ar
quivo:\1:\2:\3/p'
Para encaixar o nome do arquivo depende de como você vai utilizar o
comando acima.
Marcio Gil.
> -----Original Message-----
> From: Cristiano
>
> --- Em address@hidden, "Julio C. Neves"
> <julio.neves@...> escreveu
> >
> > Eu só sei que vc pode usar o paste para colar as taxas que
> vc quer no código
> > do produto. Não posso te dizer como, pq vc não disse como
> as alíquotas se
> > amarrariam aos produtos. É a velha máxima latina "Perguntatum
bene,
> > respostas bonas. Perguntatum malem, respostas vagas obtenes" ;-)
>
> Ok. Não explicar demais para não ficar cansativo.
>
>
> O arquivo é um XML de NFe. Os campos do arquivos são
> delimitados por tags XML. Exemplo:
>
> <cProd>001</cProd><xProd>Nome do
> Produto</xProd><pICMS>18</pICMS><vICMS>201.40</vICMS><cProd>00
> 2</cProd><xProd>Nome do outro produto</xProd>(...)
>
> Ou seja, os campos pICMS e vICMS são tags delimitados de
> campos. Só que, tal como o exemplo que colei no pastebin, há
> outros vários campos entre a tag <cProd></cProd> e
> <pICMS></pICMS> e assim por diante.
>
> Minha necessidade é extrair o conteúdo dos campos <cProd>,
> <pICMS> e <vICMS) e colocá-los como uma listagem assim:
>
> nome_do_arquivo:cProd:pICMS:vICMS
> nome_do_arquivo:cProd:pICMS:vICMS
> nome_do_arquivo:cProd:pICMS:vICMS
>
> A questão é que podem existir vários produtos (cProd) por
> arquivo e neste caso, eu preciso de uma linha para cada um
> deles, com as devidas informações (o próprio código - cProd,
> a alíquota do ICMS - pICMS e o valor do ICMS - vICMS).
>
> Dê uma olhada em um exemplo do conteúdo do arquivo, que eu já
> tinha postado no primeiro reply que dei (update):
> http://pastebin.com/f7252436a
>
> Ficou mais claro agora?
>
- Ajuda com regex e laço, Cristiano, 2010/02/15
- Re: [shell-script] Ajuda com regex e laço, Fabiano Caixeta Duarte, 2010/02/15
- Re: Ajuda com regex e laço, Cristiano, 2010/02/15
- Re: [shell-script] Re: Ajuda com regex e laço, Julio C. Neves, 2010/02/15
- Re: Ajuda com regex e laço, Cristiano, 2010/02/15
- Re: [shell-script] Re: Ajuda com regex e laço, Julio C. Neves, 2010/02/15
- Re: Ajuda com regex e laço, Cristiano, 2010/02/15
- Re: [shell-script] Re: Ajuda com regex e laço, Julio C. Neves, 2010/02/15
- RE: [shell-script] Re: Ajuda com regex e laço,
Marcio Gil <=
Re: Ajuda com regex e laço, Cristiano, 2010/02/15
Re: [shell-script] Ajuda com regex e laço, Julio C. Neves, 2010/02/15
Re: Ajuda com regex e laço, Cristiano, 2010/02/16