Ako dobro shvatam format, ovde prvo ide red u kojem je broj naloga, zatim kao separator dva reda sa minusima, zatim promene (stavke) naloga koje su izražene sa po dva reda po stavci u kojima je prvo inicijator, a zatim sama promena.
Naravno, ovakav format nije pogodan za Sql*Loader, pa ga treba obraditi.
Evo awk programa koji to može da sredi:
Code:
$1=="NALOG:" {br_naloga=$2}
$1=="INICIJATOR:" {infield2=$2; infield3=$3; infield4=$4; infield5=$5}
$1=="PS" {print br_naloga, infield2, infield3, infield4, infield5, $2, $3, $4, $5, $6}
Ovaj kod se nalazi u fajlu, koji se, na primer zove obrada.awk.
Ulazni fajl nam je, na primer, promene.txt
program se poziva sa:
Code:
awk -f obrada.awk promene.txt >rezultat.txt
Evo fajla rezultat.txt :
Code:
123-56-2010 00 98 786 09062010 0.00 01.03.2010 23.50 01.04.2010 126.59
176-30-2010 00 98 786 09062010 0.00 01.02.2010 7.50 01.03.2010 785.42
176-30-2010 00 98 786 09062010 0.00 01.01.2010 7.50 01.03.2010 785.42
176-30-2010 00 98 786 09062010 0.00 01.06.2010 9.50 03.06.2010 85.62
176-30-2010 00 98 786 09062010 0.00 01.07.2010 10.50 01.06.2010 185.48
599-11-2010 00 98 786 09062010 0.00 01.01.2010 3.50 01.04.2010 826.59
Awk, ili njegov GNU ekvivalent gawk može se skinuti sa interneta, a inače je obično standardni deo svake Linux/Unix distribucije. Ja sam koristio gawk koji dolazi uz Cygwin koji se takođe može skinuti sa interneta, a predstavlja razvojno okruženje koje emulira Linux na Windowsu.
Za više informacija o awk/gawk pogledati manuale na internetu...
Your friendly vendor