How to fix this awk


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to fix this awk
# 8  
Old 06-22-2010
Quote:
Originally Posted by Muthuraj K
What would be the ideal way to have this in my script..
Without seeing the enire code, I won't be able to tell what is wrong with your logic, can you post the code?
# 9  
Old 06-22-2010
This is script I have to mask the BPR record.
Code:
#Dynamically determine number of elements in BPR record looking for 10th and 16th element
/./{
type=substr($0,1,3)
rec = $0
awk -F\* 'BEGIN{X="XXXXXXXXXX"}
/^BPR/{
n=length($10)-4
$10=substr(X,1,n) substr($10,n+1)
n=length($16)-4
$16=substr(X,1,n) substr($16,n+1)
}1' OFS="*" rec > output
}

And I am calling this from a different script as shown below

Code:
exec 1>> $waulog
exec 2>> $waulog
awk -f $base/scripts/awkMask $Input

I wanted to have a script to mask the columns as I had mentioned above in my first post
# 10  
Old 06-22-2010
Is output a defined variable? I don't know the logic behind the script, but you can try to replace my code with:
Code:
X="XXXXXXXXXX"
oldFS=FS
FS="\*"
while( getline < rec ) {
  if($0 ~ /^BPR/) {
    n=length($10)-4
    $10=substr(X,1,n) substr($10,n+1)
    n=length($16)-4
    $16=substr(X,1,n) substr($16,n+1)
  }
  print > "output"
}
FS=oldFS

The output of the code goes to the file "output".
# 11  
Old 06-23-2010
I placed your code and it gives me syntax error as shown below,

Code:
rec = $0
X="XXXXXXXXXX"
oldFS=FS
FS="\*"
while( getline < rec ) {
  if($0 ~ /^BPR/) {
     n=length($10)-4
     $10=substr(X,1,n) substr($10,n+1)
     n=length($16)-4
     $16=substr(X,1,n) substr($16,n+1)
  }
  print > "/tmp/maskBank1fmt"
}
FS=oldFS

This is the error I get

Code:
 8471   syntax error The source line is 57.
  8472   The error context is
  8473           >>> while <<< ( getline < rec ) {
  8474   awk: Quitting
  8475   The source line is 57.

# 12  
Old 06-23-2010
As early stated, without understanding the logic behind the script it's impossible to give an answer to your question.
# 13  
Old 06-23-2010
The logic behind this script is in my first post where I am trying to mask the 9th and 15th column in a BPR record.

This is all I have in my script as I have shown above. I am trying to call this script from another script
# 14  
Old 06-23-2010
You can save the awk code in a file (eg conv.awk) and call it in a shell script with:
Code:
sh conv.awk

In an awk program you can call it as:
Code:
system("sh conv.awk")

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

awk file subtracted by a fix value - conditioned

Hi all... i have been trying to make this work but I have been failing for 6 hours .. I know it should be something simple that I am missing to it would be great if you can help me ... I want to subtract a fixed value (lets set 1) from any value >=1 from the whole file my file looks like ... (4 Replies)
Discussion started by: A-V
4 Replies

2. Shell Programming and Scripting

awk if condition match and fix print decimal place

Hi All, I have problem in the middle of implementing to users, whereby the complaint is all about the decimal place which is too long. I need two decimal places only, but the outcome from command is always fixed to 6. See the sample : before: Sort Total Site Sort SortName Parts ... (3 Replies)
Discussion started by: horsepower
3 Replies

3. Shell Programming and Scripting

Help me please to fix my error

Can you help me to fix my error please?! I checked the code and I think there is no mistake, but when I run it gives me error such line 1: /Users/Manu/trials/hosts: is a directory sort: open failed: /Users/Manu/trials/hosts/*: No such file or directory Help me please... mycode NAME value.... (9 Replies)
Discussion started by: Manu1234567
9 Replies

4. UNIX for Dummies Questions & Answers

Please help to fix awk script

Good morning, fellows. I would need to ask for your help in editing my awk script. Here is the original version: BEGIN { printf ("CRYST1 200.000 200.000 200.000 90.00 90.00 90.00 P 1 1\n") maxatoms=1000 natom=0 found_struct = 0 found_bond = 0 } { if( NF == 5 ) { foundff=0 natom++... (9 Replies)
Discussion started by: snysmumrik
9 Replies

5. Shell Programming and Scripting

Fix timestamp with Sed or Awk

Hi I am dealing with the following string: Date: Thur, 13 March 2011 01:01:10 +0000 I asked for help in another topic that converted a similar string: Date: Thur, 13 March 2011 9:50 AM To a 24 hr standard. The problem is that it comes out as: Date: Thur, 13 March 2011 9:50:00 +0000... (4 Replies)
Discussion started by: duonut
4 Replies

6. Shell Programming and Scripting

how to fix the column length in a file using Awk Prog

Hi I use the following code to read the file and to fix the length of the column of the record in the file 'Sample.txt' ls Samp* | awk ' { a=$1 } END{ FS="n" for(i=1;i<=NR;i++) { while( getline < a ) { f1=$0; print("Line::",f1); f2=substr(f1,1,10) print("Field1::",f2);... (10 Replies)
Discussion started by: meva
10 Replies

7. Shell Programming and Scripting

how to fix this awk script?

i have a log file while looks like this ++ user_a blabla blabla nas_b blabla user_d this is a user_a junk line another junk line user_c nas_m blabla ++ basically most of the lines contain a "user" keywords, and the rest of the lines do not have "user" at all. So I have the... (17 Replies)
Discussion started by: fedora
17 Replies

8. Solaris

ZFS Help!!! Can I fix this??

Well I got ZFS going almost in version one and didn't have the money to raid it or mirror it. I run off of 7 - 750GB-1TB USB drives and it's run great for over a year. Recently I needed to power off and move some stuff around and when I powered it back on I got this:... (3 Replies)
Discussion started by: lacakid
3 Replies

9. Shell Programming and Scripting

AWK record length fix

Hi Friends, Need some help in AWK. Working on AIX 5 Have been trying the following functionality to make the record length fixed: if( length(record) < 300 ) { printf("%-300s\n", record); } In my opinion it will apply some fillers in the end. Its is not making any... (4 Replies)
Discussion started by: kanu_pathak
4 Replies

10. Shell Programming and Scripting

awk / shell - Fix broken lines and data

Gurus, I am struggling with a issue and thought I could use some of your expertise. Need Help with this I have a flat file that has millions of records 24|john|account ~ info |56| 25|kuo|account ~ journal |58| 27|kim|account ~ journal |59| 28|San|account ~ journal |60|... (3 Replies)
Discussion started by: rimss
3 Replies
Login or Register to Ask a Question