#!/bin/sh # # icc2rows (version 1.0) # # Usage: icc2rows PLANT.ICC # # By: Angel Corbera (TSID1), Refinery Isla, Curacao, N.A. # Comments to: corbera@rocketmail.com # # This script will convert a Control Blocks Database file: PLANT.ICC, # in a single long column, to another ascii file: PLANT.TXT, # with Block parameters in a multi-column one-line per Block format. # The output file can be imported by an spreadsheet program like Excel, # or any database pgm, where parameters comparison could be done easily # in this format. # # The input file PLANT.ICC can be produced with my other utility: "geticc", # that uses /opt/fox/ciocfg/api/iccprt to get the parameters. # # The output file PLANT.TXT can be opened in Excel, using "!" as delimiter. # The file can be sorted by Blocktype, and Headers added for each type # of block (HEADERS.TXT is obtained from "get_head" utility). # # Note: v4.x CALC blocks have the highest number of parameters: 152, # and they take up to the EW column. Others: FDSCAN (140), IND (120), # PIDA (116), PIDX (102), FDRIN (95), PID (90). # # If you want, instead of working with one big file PLANT.TXT, you might # want to split it into several small files, one for each type of blocks: # grep \!AIN\! PLANT.TXT > ain.txt # grep \!PID\! PLANT.TXT > pid.txt # ... and so on # Each of these files could be taken to Excel. # # Enjoy it! # # Steps to use the utilities: # - mkdir /opt/ac # - Copy "geticc", "icc2rows", "get_head" utilities to /opt/ac # - cp /etc/cplns /opt/ac/mycps # - If needed, delete undesired CP/GW names from mycps # - Run "geticc". This will produce: PLANT.ICC # - Run "icc2rows". This will produce: PLANT.TXT # - Run "get_head". It will produce: HEADERS.TXT # - Combine files: cat HEADERS.TXT PLANT.TXT > COMBINED.TXT # - Transfer COMBINED.TXT to a PC. Open it in Excel. # - Create a new column: A. Type AAAA for cells from HEADERS.TXT # Type BBBB for cells from PLANT.TXT. # - Sort now by BLOCKTYPE column, and by the new column A. # - Enjoy it ... # cd /opt/ac if [ ! -s PLANT.ICC ] then echo "\nPLANT.ICC does not exist!" echo "Run geticc to create it." exit 1 fi echo "\nProcessing PLANT.ICC ... please wait." sed -e 's/NAME = /NAME = @/' PLANT.ICC > tmp1 sed -e 's/= /z/' tmp1 > tmp2 sed -e 's/NAME z@/NAME @/' tmp2 > tmp1 cut -c8-70 tmp1 > tmp2 tr "\012" ! < tmp2 > tmp1 tr @ "\012" < tmp1 > tmp2 tr -d z < tmp2 > tmp1 sed -e 's/\!COMPND\!/\!\!COMPND\!/' tmp1 > tmp2 sed -e 's/:/\!/' tmp2 | sed -e 's/:/\!/' > PLANT.TXT BLKS=`wc -l PLANT.TXT | awk '{print $1}'` rm tmp1 tmp2 echo "\nThe ascii file PLANT.TXT ($BLKS cmpd/blocks) is ready to be taken to Excel...\n"