The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > Top Forums > Shell Programming and Scripting
Google UNIX.COM


Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts here.

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
Perl: Match a line with multiple search patterns Juha Shell Programming and Scripting 10 04-08-2008 10:43 PM
Multiple line match using sed SiftinDotCom Shell Programming and Scripting 15 03-28-2008 11:12 AM
Concatenating multiple lines to one line if match pattern phixsius Shell Programming and Scripting 13 01-24-2008 08:02 PM
processing line in file fablef00 Shell Programming and Scripting 8 01-23-2006 08:41 AM
multiple file processing jagannatha UNIX for Dummies Questions & Answers 4 05-03-2003 06:22 AM

Reply
 
Submit Tools LinkBack Thread Tools Search this Thread Display Modes
  #1  
Old 12-27-2007
Registered User
 

Join Date: Dec 2007
Posts: 2
Multiple file processing - 1st line only to process - search/match substring

Hi People.

I am not a script programmer, so apologies for any bad techniques used here.

I am fighting to write my script to run which needs to be run within a unix environment, so it must be a shell (ksh) script or awk script or combination of both to:

(a) Run at unix level in a filesystem with may ascii files in it
(b) Run by say, the command: ./check_files *.TXT (it can obviously be called anything)

It needs t
1. read each ascii file present that matched the passed file format parameter (*.TXT in above example).
2. read only the 1st line (header record) of every file, effectively checking characters 34-39 using the substr command
3. check that 6 character field against an array to see if they match, if not display the filename as not having the correct 6-character code as needed.

The online command which does the heart of it is

head -n 1 $1 | awk '{print substr( $0, 34, 6) }'

where $1 is the filename, but I have not been at all successful in creating this as part of a script (.awk) file. specifically the following association fails (syntax error):

demo_extracted=head -n 1 $1 | awk '{print substr( $0, 34, 6) }'

(see copy of code below)

I have been trying to run this awk script by using the command

awk -f check_file.awk listfile.txt

where the above command is in the check_file.awk script and the listfile.txt has a list of the files to process.

so, codewise/logicwise, which fails is (NOTE script is incomplete and obviously not working)- check_file.awk:

#!/bin/ksh

BEGIN {
}
# main logic
{
demo[1]= "10-19 ";
demo[2]= "18-39 ";
demo[3]= "18-49 ";
demo[4]= "1839AK";
demo[5]= "1849AK";
demo[6]= "25-54 ";
demo[7]= "2554$+";
demo[8]= "2554AK";
demo[9]= "25AK60";

demo_count=9
demo_found="false"

demo_extracted=head -n 1 $1 | awk '{print substr( $0, 34, 6) }'

# check for blank trading demo
if <check made with demo_extracted ='' is true>
print $1 has no trading demo"
else

# loop and check if valid demo
for (x=1; x<= demo_count; ++x)
if demo[x]=demo_extracted then
print demo[x]
demo_found=true
endfor

if demo_found="false"
print $1 has invalid trading demo
}


I am struggling with this (been googling etc.), so your help is very much appreciated.

of course any better way would also be gratefully recieved. Gosh, I didnt think it would be so complicated!

cheers
T
Reply With Quote
Forum Sponsor
  #2  
Old 12-28-2007
Registered User
 

Join Date: Nov 2007
Posts: 85
I home u need this one only

awk -f sample.awk *.txt

Code of sample.awk

BEGIN {demo[1]= "10-19 ";
demo[2]= "18-39 ";
demo[3]= "18-49 ";
demo[4]= "1839AK";
demo[5]= "1849AK";
demo[6]= "25-54 ";
demo[7]= "2554$+";
demo[8]= "2554AK";
demo[9]= "25AK60";
}
{
if(FNR==1)
{
found=0;
for(i in demo)
if(substr($0,34, 6)==demo[i])
{
found=1;
break;
}
if(!found) print FILENAME,"has invalid trading demo"
}
else next;
}
Reply With Quote
  #3  
Old 01-02-2008
Registered User
 

Join Date: Dec 2007
Posts: 2
Smile Multiple file processing - 1st line only to process - search/match substring

ranjithpr

many thanks! you are fabulous.

kindest regards
T
Reply With Quote
Google The UNIX and Linux Forums
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes




All times are GMT -7. The time now is 07:28 AM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited.
The UNIX and Linux Forums Content Copyright ©1993-2008. All Rights Reserved.Ad Management by RedTyger Visit The Complex Event Processing Blog

Content Relevant URLs by vBSEO 3.2.0