#!/bin/bashcd /tmp/xmlecho "ARQUIVO:NF:COD_PRODUTO:PRODUTO:QTDE:UNITARIO:UNIT_TRIB:TOTAL_PROD:ICMS_RED_BC:ICMS_BASE:ICMS_ALIQ:ICMS_VALOR"for XML in *.xml ; do FILE="/tmp/${XML}" sed 's/\(<det nItem=\"[0-9]*\">\)/\n\1/g' ${XML} > $FILE ## cada item em uma linha nNF=$(sed -n '/<nNF>/{s/^.*<nNF>//;s/<\/nNF>.*$//;p}' ${FILE}) ## numero da NF for ID in $(sed -n '/\(<det nItem=\"[0-9]*\">\)/{s/^<det nItem=\"//;s/\">.*$//;p}' ${FILE}) ; do ## retida dados dos itens ID_NITEM='<det nItem=\"'${ID}'\">' LINHA=$(grep "${ID_NITEM}" ${FILE}) for TAG in cProd infAdProd qCom vUnCom vUnTrib vProd ; do VALUE=$( echo "${LINHA}" | sed -n '/<'${TAG}'>/,/<\/'${TAG}'>/ { s/^.*<'${TAG}'>// s/<\/'${TAG}'>.*$// p }' ) eval ${TAG}='"'${VALUE}'"' done ICMS=$(echo "${LINHA}" | sed -n 's/^.*<ICMS>//;s/<\/ICMS>.*$//;p') ## isola informaes do ICMS for TAG in pRedBC vBC pICMS vICMS ; do ## retira dados do ICMS VALUE=$( echo "${ICMS}" | sed -n '/<'${TAG}'>/,/<\/'${TAG}'>/ { s/^.*<'${TAG}'>// s/<\/'${TAG}'>.*$// p }' ) eval ${TAG}='"'${VALUE}'"' done echo ${XML}:${nNF}:${cProd}:${infAdProd}:${qCom}:${vUnCom}:${vUnTrib}:${vProd}:${pRedBC}:${vBC}:${pICMS}:${vICMS} done rm ${FILE}done