Need shell script for following problem.

October 4, 2010 at 05:52:43
Specs: Windows XP
Hi ,
My problem is to find out how many ~"tildas" present in each row, also check if number of tildas"~" are not same as declared in variable then it shoul give an error. also it should scan whol file and show in which line the tildas are not same. That means each row should contains same number of tildas"~".
One more thing i need to read the constants from another propety file. for example. validate.property
file has
INT_EUR=14
INT_TOK=51

count.txt has data
INTELLECT~AA~11~~~~1012012~GF~2BG31231~~~~~~
INTELLECT~AA~11~~~~1012012~GF~2BG31231~~~~~~
INTELLECT~AA~11~~~~1012012~GF~2BG31231~~~~~~~~~

new.sh
this script should scan whol count.txt file and check if row 1=14 tildas if yes then check next if not then it should gives an error like line number 1 dont have 14 tildas, agin it should go ahead and check 2nd row if tildas are 14 hen next and so on......
Also it should scan so fast. i will be having around more than 50 thousands of records. so it shoul not take more than 1 or 2 mins

Thanks & Regards,
Ganesh


See More: Need shell script for following problem.

Report •

#1
October 6, 2010 at 07:28:43
declare the tilde as a field separator for awk and count the number of field.
that number -1 is the amount of tilde characters per record
sth like:
cat inputfile | awk 'BEGIN {FS = "~"} {if ( NF-1 != 14 ) print $0 }' > outputfile

outputfile will contain all records with not exactly 14 tilde characters

cheers


Report •

#2
October 19, 2010 at 17:54:23
>>cat inputfile | awk 'BEGIN {FS = "~"} {if ( NF-1 != 14 ) print $0 }' > outputfile

lose the cat. Its useless and takes up 1 process...pass the file directly to awk.

GNU win32 packages | Gawk


Report •
Related Solutions


Ask Question