Problem with a AWK Script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Problem with a AWK Script
# 1  
Old 05-22-2009
Java Problem with a AWK Script

Hi

I am having some contents in my file like this

file1

Code:
##########################
 
pin (PIN1) {
     direction : input ;
     capacitance : 121 ;
     max_transition :  231 ;
 }
   pin (PIN2) {
     direction : input ;
     capacitance : 124 ;
     max_transition : 421 ;
##########################
 
The Awk script should search the "PIN1" and then "max_transition" of the Group PIN1 
 
and Insert the following code 
 
timing () {
       related_pin : PIN4 ;
       timing_type : setup_rising ;
       rise_constraint (scalar) {
         values ("0.20000") ;
       }
       fall_constraint (scalar) {
         values ("0.20000") ;
       }
     }
     
 
so final Contents of the file 1 should be 
 
file 1
 
###########################
pin (PIN1) {
     direction : input ;
     capacitance : 121 ;
     max_transition :  231 ;
 }
timing () {
       related_pin : PIN4 ;
       timing_type : setup_rising ;
       rise_constraint (scalar) {
         values ("0.20000") ;
       }
       fall_constraint (scalar) {
         values ("0.20000") ;
       }
     }

 pin (PIN2) {
     direction : input ;
     capacitance : 124 ;
     max_transition : 421 ;

can anyone help me out in this ?

Thanks and Regards
Kshitij Kulshreshtha
# 2  
Old 05-22-2009
Suppose you have the code you want to insert in a file insert_file:

Code:
awk '
/PIN1/{f=1}
f && /}/{print;system("cat insert_file");f=0;next}
1' file1 > newfile

# 3  
Old 05-22-2009
Code:
awk '
/PIN1/{f=1}
f && /}/{
 print
 print "timing () {"
 print "    related_pin : PIN4 ;{"
 print "    rise_constraint (scalar) {"
 print "    values (\"0.20000\") ;"
 print "    }"
 print "    fall_constraint (scalar) {"
 print "       values ("0.20000") ;"
 print "    }"
 print "  }"
 f=0
 next
}1' file

# 4  
Old 05-24-2009
Java Problem with a awk script

awk '
/PIN1/{f=1}
f && /}/{print;system("cat *insert_file*");f=0;next}
1' file1 > newfile

I could not understand how this code works
Can anyone explains me this ?

Thanks and Regards
Kshitij Kulshreshtha
# 5  
Old 05-24-2009
Code:
awk '
/PIN1/{f=1}
f && /}/{print;system("cat insert_file");f=0;next}
1' file1 > newfile

Awk reads the file line by line and applies the command.
When a line matches PIN1, it sets a flag(f=1).
And keeps reading the file line by line. When it finds the line that matches a closing brcket }, it checks the flag value.
If the flag value is set and also it matches the }, then it prints the line and then also prints the contents of the file "insert_file". It then resets the flag and starts processing the next line and jumps to the frst command in the awk script, repeating the loop.


-Devaraj Takhellambam
# 6  
Old 05-24-2009
Java Problem with a AWK SCRIPT

Thanks for your previous reply

Awk script with new requirements

file1
#######################

Code:
pin (PIN1) {
     direction : input ;
     capacitance : 121 ;
     max_transition :  231 ;
 }
 
pin (PIN2) {
     direction : input ;
     capacitance : 124 ;
     max_transition : 421 ;

##############################

Need to write an awk script which should search PIN1
and max_transition of the Group PIN1 and then add the limited code from the file insert_file

like this

insert_file
#################
Code:
timing () {
       related_pin : PIN4 ;
       timing_type : setup_rising ;
       rise_constraint (scalar) {
         values ("0.20000") ;
       }
       fall_constraint (scalar) {
         values ("0.20000") ;
       }
     }
timing () {
       related_pin : PIN5 ;
       timing_type : setup_rising ;
       rise_constraint (scalar) {
         values ("0.20000") ;
       }
       fall_constraint (scalar) {
         values ("0.20000") ;
       }
     }
timing () {
       related_pin : PIN6 ;
       timing_type : setup_rising ;
       rise_constraint (scalar) {
         values ("0.20000") ;
       }
       fall_constraint (scalar) {
         values ("0.20000") ;
       }
     }

only the code related to PIN4 should be inserted in the file1

so the new file2 contents should be

file2
######################


Code:
pin (PIN1) {
     direction : input ;
     capacitance : 121 ;
     max_transition :  231 ;

timing () {
       related_pin : PIN4 ;
       timing_type : setup_rising ;
       rise_constraint (scalar) {
         values ("0.20000") ;
       }
       fall_constraint (scalar) {
         values ("0.20000") ;
       }
     }

pin (PIN2) {
     direction : input ;
     capacitance : 124 ;
     max_transition : 421 ;
}


Last edited by vidyadhar85; 05-24-2009 at 06:45 AM.. Reason: added code tags
# 7  
Old 05-24-2009
Code:
sed -n '/timing/{N;N;N;N;N;N;N;N;N;/timing.*PIN4/p;N}' insert_file | awk '/PIN1/{f=1}
f && /}/{print;system("cat $1");f=0;next}1' inputfile


-Devaraj Takhellambam
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk script problem

Hello guys i have following problem. I'm trying to copy content of one file and paste this content in all .txt files in directory, but at line 15. My script copy the content at first line, not 15. I'm confused how to do this. Thank you in advance for your help! This is my script: ARGS=2 ... (9 Replies)
Discussion started by: r00ty
9 Replies

2. Shell Programming and Scripting

Awk Script Problem

Can someone please explain to me what is wrong with this awk script? echo 74 85 | awk '{ if ( $1 > $2 ) PRESULTS = ( $1 - $2 ); print $0,"=>","P"PRESULTS ; else if ( $1 > $2 ) NRESULTS = ( $2 - $1... (3 Replies)
Discussion started by: SkySmart
3 Replies

3. Shell Programming and Scripting

problem with awk script

Hi, I have two files Hi, I have two files file1 :> Code: val="10" port="localhost:8080"httpadd="http:\\192.168.0.239" file2 :> Code: val=${val} val="pdssx" port=${port}port="1324"httpadd=${httpadd}httpadd="raamraav"fileloc=${fileloc} file3(or file2) should have following... (1 Reply)
Discussion started by: nitin.pathak
1 Replies

4. Shell Programming and Scripting

Awk script Problem

Hi , I am having two files FILE1 and FILE2 as shown below I need to search each and every element of Coulumn1 in the FILE1 in FILE2 and Globally replace with the Corresponding element of the Column2 in the FILE2 , For example and1 which is the first element of COl 1 of the FILE1 should be... (4 Replies)
Discussion started by: jaita
4 Replies

5. Shell Programming and Scripting

Problem with awk script

Hi, I have one csv file with 3 fileds like tmp1.csv 2079|2010Aug|cardilogy 2349|2010Aug|numerology 2213|2010Aug|immunlogy another csv file with code for those specialities spec.csv cardiology|CRD numerology|NMY immunology|IMY i want to replace the contents of file 1 with codes... (2 Replies)
Discussion started by: Man83Nagesh
2 Replies

6. Shell Programming and Scripting

Problem with an awk Script

hello, first, yes i searched the forum , google and read many tutorials but still have a problem with my script. I have great Problems, because i haven't worked with regular expressions before and never had anything to do with shellscripts. i am a complete Newby in this sort of theme. I have... (8 Replies)
Discussion started by: Crashvogel
8 Replies

7. Shell Programming and Scripting

awk script problem

Hi All, I have the following input data: That I'd like to look like this ($2 is the column I'd like it to appear in) where the entries are grouped by date: The code I have at present is: awk 'BEGIN {} { dt = $1 if (dt == dt_prev) { pp = $3 ... (7 Replies)
Discussion started by: pondlife
7 Replies

8. Shell Programming and Scripting

Problem with awk script

Hi Can anyone help me in this Problem File1 ######################### HOLI 123 AND ONE TWO THREE AMITABH SAMSUNG POLI AND TWO SENSE CRYING WING PPIN TBFLAG I B AND OROLE TB_HOT=" DCT" TB_CAT=" CAT" TC_NOT=" AND" +PIN TB=" HOT" TB_GATE=" KOT" TB_LATE=" MAT" TC=LOT MAT DAT SAT... (5 Replies)
Discussion started by: kshitij
5 Replies

9. Shell Programming and Scripting

Problem with one awk script

Hi , I am having a file having the contents like this file1 ##################### kite kshitij jolly admire in the wing and tell me the secret behind opus 123 and the right of the track ######################### I have to write one awk script to substitue some values with other... (6 Replies)
Discussion started by: kshitij
6 Replies

10. Shell Programming and Scripting

awk script Problem

I wrote a awk but doesnt work as expected. The Input File attached input file My awk Script /^.......*EXEC CICS /,/END-EXEC/ { if ( $0 ~ / LINK / ) { tsflag=1 } if ( $0 ~ /EXEC CICS/ && tsflag == 1 ) ... (6 Replies)
Discussion started by: pbsrinivas
6 Replies
Login or Register to Ask a Question