AWK Script Issue insert newline for a regular expression match


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting AWK Script Issue insert newline for a regular expression match
# 15  
Old 11-29-2010
Network Awk script issue

Thanks Ctgsnb,

Hi ! In this script
Code:
sed -e 's/\(RXH[^ ]*\), */\1,%/' FILE1 | tr '%' '\n'

instead of special character % , can we use any expression like "REPLACE" or any other expression to tie it up with tr for replacement of the \1 pattern

Thanks
Jaita

Last edited by Scott; 11-29-2010 at 09:50 AM.. Reason: Code tags
# 16  
Old 11-29-2010
No,

tr handle character per character translation, but you can use § or µ or # or whatever uncommon character that is not supposed to appear in the file you want to parse.

Or give a try to this (dont forget any simple or double quote)

Code:
sed -e 's/\(RXH[^ ]*\), */\1,'"\n"'/' FILE1


Last edited by ctsgnb; 11-29-2010 at 05:12 AM..
This User Gave Thanks to ctsgnb For This Post:
# 17  
Old 11-29-2010
Network Awk script issue

Thanks Ctgsnb for your valuable inputs
Still getting familiar with the sed .

having new coding issue ->

Code:
 
FILE1 
#########################
pin (RXEDF) {
input 
output 
};
 
pin (RXEHRR) {
input kdk
output kdkdk 
};
 
pint (RXHERT) {
input jdjd
output kkd
timing () {
   rise_constraint (setup_template_2x2) {
         index_1 ("1.000, 195.000") ;
   }
fall_constraint (setup_template_2x2) {
         index_1 ("1.000, 195.000") ;
   }
     }
 timing () {
       related_pin : "TXHDCLK" ;
       timing_type : hold_rising ;
rise_constraint (hold_template_2x2) {
index_1 ("1.000, 195.000") ;
}
fall_constraint (hold_template_2x2) {
index_1 ("1.000, 195.000") ;
}
}
}
 
pin (RXCER) {
input ioti
output nfnf
};
 
######################

Code:
 
OUTPUT 
####################
pin (RXEDF) {
input 
output 
};
 
pin (RXCER) {
input ioti
output nfnf
};
 
#######################

Need to match regular expression RXH and delete the content

I am using the following sed script

Code:
 
sed '/RXH[^ ]*/,/}/d'

but it is deleting only the limited content as it is matching first } bracket only

Output what I am getting is

Code:
 
Wrong Output 
 
#####################3
 
pin (RXEDF) {
input 
output 
};
 
fall_constraint (setup_template_2x2) {
         index_1 ("1.000, 195.000") ;
   }
     }
 timing () {
       related_pin : "TXHDCLK" ;
       timing_type : hold_rising ;
rise_constraint (hold_template_2x2) {
index_1 ("1.000, 195.000") ;
}
fall_constraint (hold_template_2x2) {
index_1 ("1.000, 195.000") ;
}
 
pin (RXCER) {
input ioti
output nfnf
};
}
}

Please share your valuable inputs with me
# 18  
Old 11-29-2010
Your example is ambiguous with your requirement : the record containing RXEHRR doesn't appear in your output file whereas it doesn't match RXH ...
?
By the way i am a bit confused : is your file correctly formatted (with those } and }; )
Are you sure no ; are missing ?
# 19  
Old 11-29-2010
Hi Ctgsnb

This could be correct file

FILE1
Code:
pin (RXEDF) {
input 
output 
};
 
pin (RXHRR) {
input kdk
output kdkdk 
};
 
pint (RXHERT) {
input jdjd
output kkd
timing () {
   rise_constraint (setup_template_2x2) {
         index_1 ("1.000, 195.000") ;
   }
fall_constraint (setup_template_2x2) {
         index_1 ("1.000, 195.000") ;
   }
     }
 timing () {
       related_pin : "TXHDCLK" ;
       timing_type : hold_rising ;
rise_constraint (hold_template_2x2) {
index_1 ("1.000, 195.000") ;
}
fall_constraint (hold_template_2x2) {
index_1 ("1.000, 195.000") ;
}
}
};
 
pin (RXCER) {
input ioti
output nfnf
};

Output
Code:
pin (RXEDF) {
input 
output 
};

pin (RXCER) {
input ioti
output nfnf
};

with
Code:
sed '/RXH[^ ]*/,/}/d'

but it will take care of the first expression not for the second match because it has to delete till all the 3 } } } brackets

Last edited by Scott; 11-29-2010 at 09:52 AM.. Reason: Code tags
# 20  
Old 11-29-2010
Try this (from line containing RXH to the first empty line found) :

Code:
sed '/RXH/,/^$/d' input

Note : watch out : if "RHX" appears inside a non "RHX" block, the proposed code would not be suitable example :

if a block looks like

Code:
pin (REHRR) {
input kdk
<whatever> RXH <whatever>
output kdkdk 
};

the corresponding unexpected output will be produced:

Code:
pin (REHRR) {
 input kdk


Last edited by ctsgnb; 11-29-2010 at 09:47 AM..
# 21  
Old 11-29-2010
Network awk script issue

Hi Ctgsnb,

Thanks for the Code ^$ matches with the blank lines but in my file
between the pin configurations blank lines are not there
This code will delete everything after the first match
Can u suggest something else to match up with the 3rd } after matching the pattern and deleting the configuration


Thanks
Jaita
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Insert a newline after match in files of specific name under some subdirectories?

Hi I'd like to add the newline: \tuser: nobody", or "<TAB>user: nobody to all files named: docker-compose.ymlin subfolders of pwd with names beginning with 10-20. Within these files, I'd like to find the line (there'll only be one) containing: command: celery workerNOTE: As far as... (2 Replies)
Discussion started by: duncanbetts
2 Replies

2. Shell Programming and Scripting

Regular expression match

echo 20110101 | awk '{ print match($0,/^((17||18||19||20)|)-*(|0|1)-*(|0||3)$/)) I am getting a match for the above, where as it shouldn't, as there is no hyphen in the echoed date. Another question is what is the difference between || and | in the above statement (4 Replies)
Discussion started by: tostay2003
4 Replies

3. Shell Programming and Scripting

Help with awk script (syntax error in regular expression)

I've found this script which seems very promising to solve my issue: To search and replace many different database passwords in many different (.php, .pl, .cgi, etc.) files across my filesystem. The passwords may or may not be contained within quotes, single quotes, etc. #!/bin/bash... (4 Replies)
Discussion started by: spacegoose
4 Replies

4. Shell Programming and Scripting

regular expression exact match

hi everyone suppose we have two scenario echo ABCD | grep \{4\} DATE echo SYSDATE | grep \{4\} SYSDATE i want to match the string of four length only please help (5 Replies)
Discussion started by: aishsimplesweet
5 Replies

5. Shell Programming and Scripting

AWK script issue for the part regular expression

Hi I am having a file as shown below FILE 1 TXDD00, TXDD01, TXDD02, TXDD03, TXDD04, TXDD05, TXDD06, TXDD07, TXDD08, TXDD09, TXDD10, TXDD11, TXDD12, TXDD13, TXDD14, TXDD15, TXDD16, TXDD17, TXDD18, TXDD19, TXDDCLK, TXDJTAGAMPL0, TXDJTAGAMPL1,... (3 Replies)
Discussion started by: jaita
3 Replies

6. Shell Programming and Scripting

regular expression match

I am trying to match a similar line using grep with regular expression the line is /remote/mac/pbbbb/abc/def/hij/hop/include/abc/tif/element/test/testfiles/Office.cpp:57: const OfficeType& getType().get() const; I just need to extract the bold characters using grep with regular expression.... (5 Replies)
Discussion started by: prasbala
5 Replies

7. Shell Programming and Scripting

regular expression to match repeated appearance

Hi all, I am looking for a regex syntax to match repeated appearance. Likes, ']+]+' matches for string '65A SOME MORE AND 78B' Now, this gets messy if I need to extract all such repeated appearance. I don't want to write ] four or five times for matching repeated appearance. Thanks in... (2 Replies)
Discussion started by: guruparan18
2 Replies

8. Shell Programming and Scripting

Regular expression match

Hi all, any idea how to match the following: char*<no or any string or space> buf and char *<no or any string or space> buf i need to capture the buf characters too. currently i need two checks to cover this: #search char* <any string> buf or char *<any string> buf @noarray =... (2 Replies)
Discussion started by: ChaMeN
2 Replies

9. UNIX for Dummies Questions & Answers

Regular Expression - match 'b' that follows 'a' and is at the end of a string

Hi, I'm struggling with a regex that would match a 'b' that follows an 'a' and is at the end of a string of non-white characters. For example: Line 1: aba abab b abb aab bab baa I can find the right strings but I'm lacking knowledge of how to "discard" the bits that precede bs.... (2 Replies)
Discussion started by: machinogodzilla
2 Replies

10. UNIX for Dummies Questions & Answers

Exact match with regular expression

Hi I have a file with data arranged into columns. The first column is the chromosome name. When I use grep to subset only rows with chr1, I get chr1 but also chr10, chr11,.. How do I get only rows with chr1? grep chr1 filein > fileout head fileout chr1 59757841 chr11 108258691 ... (2 Replies)
Discussion started by: jdhahbi
2 Replies
Login or Register to Ask a Question