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 shell-script@yahoogrupos.com.br, "Julio C. Neves" > <julio.ne...@...> 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? >