Writing output into different files while processing file using AWK


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Writing output into different files while processing file using AWK
# 1  
Old 05-04-2009
Writing output into different files while processing file using AWK

Hi,

I am trying to do the following using AWK program.
1. Read the input data file
2. Parse the record and see if it contains errors
3. If the record contains errors, then write it into Reject file, else, write into usual output file or display it on the screen

Here is what I have done -
BEGIN {FS=OFS="\n"}
{
fld1 = substr ($0, 1, 10)
fld2 = substr ($0, 11, 15)

if (fld1 == " ")
print "ERR : " fld1 "|" fld2 >> a.reject
else
print "ABC : " fld1 "|" fld2
}

When I execute the above awk, it is not creating a.reject file -- though there are input records with fld1 = blank. Kindly help.

Thanks and Regards,
Vidya
# 2  
Old 05-04-2009
Apparently, fd1 is not returning an empty string.
Can you provide a sample of how does your input file looks like?


cheers,
Devaraj Takhellambam
# 3  
Old 05-04-2009
A123456 11111
B123456 22222
C123456 33333
44444
D123456 55555

One more note, I also tried to check the length of fld1 (after trimming the contents) to write the record to reject file ... but still in vain Smilie

Thanks and Regards,
Vidya
# 4  
Old 05-04-2009
Quote:
Originally Posted by vidyak
A123456 11111
B123456 22222
C123456 33333
44444
D123456 55555

One more note, I also tried to check the length of fld1 (after trimming the contents) to write the record to reject file ... but still in vain Smilie

Thanks and Regards,
Vidya
Ok..with this i/p file, your awk script will never create the file as it will always return something for fd1..
what sould be the content of the reject file..? How do you identify a line that is an error?


cheers,
Devaraj Takhellambam
# 5  
Old 05-04-2009
Oops, I had posted one record with blank value for first field. Not sure, how it appeared different when I submitted the contents Smilie
Well, let me try it in different way. Below are the contents of the file.

Line 1: A123456 11111
Line 2: B123456 22222
Line 3: C123456 33333
Line 4: 44444
Line 5: D123456 55555

In above example, line 4 does not contain contents for fld1 and hence should be written to Reject file. Does this help?

Thanks and Regards,
Vidya
# 6  
Old 05-04-2009
Not sure, if you are looking for something like this:

Code:
 awk 'length($0) < 13 && substr($0,8,1)==""{print "ERR: " $0 > "reject.txt"}' filename


cheers,
Devaraj Takhellambam
# 7  
Old 05-04-2009
Try this:

Code:
awk 'NF==1{print > "a.reject";next}{print}' file

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Using awk to output matches between two files to one file and mismatches to two others

I am trying to output the matches between $1 of file1 to $3 of file2 into a new file match. I am also wanting to output the mismatches between those same 2 files and fields to two separate new files called missing from file1 and missing from file2. The input files are tab-delimited, but the... (9 Replies)
Discussion started by: cmccabe
9 Replies

2. UNIX for Dummies Questions & Answers

awk - Rename output file, after processing, same as input file

I have one input file ABC.txt and one output DEF.txt. After the ABC is processed and created output, I want to rename ABC.txt to ABC.orig and DEF to ABC.txt. Currently when I am doing this, it does not process the input file as it cannot read and write to the same file. How can I achieve this? ... (12 Replies)
Discussion started by: High-T
12 Replies

3. Shell Programming and Scripting

Writing the output of set -x into Log files

Hi Guys, I am using set -x in my script to track the flow of the script. But if i want to write the output of the set -x into a log file, how do i do it? Thanks, Ajay (3 Replies)
Discussion started by: Ajay Venkatesan
3 Replies

4. Programming

awk processing / Shell Script Processing to remove columns text file

Hello, I extracted a list of files in a directory with the command ls . However this is not my computer, so the ls functionality has been revamped so that it gives the filesizes in front like this : This is the output of ls command : I stored the output in a file filelist 1.1M... (5 Replies)
Discussion started by: ajayram
5 Replies

5. Shell Programming and Scripting

Problem with writing to output - awk, echo

Hello all, I wrote this command line for some calculation on my given input files based on another input file which is a txt file. while read BAM REGION; do samtools view $BAM $REGION | awk '{if ($2==0) print $0}' | wc -l >>log.txt; echo "$REGION"; done >> log.txt <regions.txt It takes... (4 Replies)
Discussion started by: @man
4 Replies

6. UNIX for Dummies Questions & Answers

Use awk to pipe output from one file into multiple files

Hi All. Thanks for your help in advance. I have a requirement to examine the number of delimiters in each record of a file. If the record has the expected number of delimiters it should be passed into a 'good' file. If it does not, the record should be passed into a 'bad' file. I have been able... (8 Replies)
Discussion started by: codestar1
8 Replies

7. UNIX for Dummies Questions & Answers

Writing a loop to manipulate a script and store it in multiple output files

I have a script where the the 9th line looks like this: $filename=sprintf("250.1chr%d.ped", $N); I want to modify this script 1000 times, changing 250.1chr%d.ped to 250.2chr%d.ped, 250.3chr%.ped.......and so on all the way to 250.1000chr%d.ped and store each output in files called ... (4 Replies)
Discussion started by: evelibertine
4 Replies

8. Shell Programming and Scripting

processing the output of AWK

Hi my input file is <so > < Time > <Pid> <some ro><Job Name> 111004 04554447 26817 JOB03275 MBPDVLOI 111004 04554473 26817 JOB03275 MBPDVLOI 111004 04554778 26807 JOB03276 MBPDVAWD 111004 04554779 26807 JOB03276 MBPDVAWD 111004 04554780 26817 ... (4 Replies)
Discussion started by: rakeshkumar
4 Replies

9. Shell Programming and Scripting

Processing files using awk

Hi I have files in our UNIX directory like the below -rw-r--r-- 1 devinfo devsupp 872 Sep 14 02:09 IMGBTREE27309_12272_11_1_0_FK.idx0 -rw-r--r-- 1 devinfo devsupp 872 Sep 14 02:09 IMGBTREE27309_12272_11_0_0_PK.idx0 -rw-r--r-- 1 devinfo devsupp 432 Sep 14... (7 Replies)
Discussion started by: rbmuruga
7 Replies

10. UNIX for Dummies Questions & Answers

single output of awk script processing multiple files

Helllo UNIX Forum :) Since I am posting on this board, yes, I am new to UNIX! I read a copy of "UNIX made easy" from 1990, which felt like a making a "computer-science time jump" backwards ;) So, basically I have some sort of understanding what the basic concept is. Problem Description:... (6 Replies)
Discussion started by: Kasimir
6 Replies
Login or Register to Ask a Question