need to print lines between repeated pattern


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting need to print lines between repeated pattern
# 1  
Old 09-04-2012
need to print lines between repeated pattern

Hi all,

I have a file that looks like this:


Code:
uid=bessemsj
version: 1
dn: cn=Desk SpecialAdminDesk, ou=Desks, dc=DSS,c=nl,o=Vodafone
dn: cn=DSS Advisors, ou=Groups, dc=DSS,c=nl,o=Vodafone
dn: cn=DSS Dispatcher,ou=Groups,dc=DSS,c=nl,o=Vodafone
dn: cn=Desk Retention Desk,ou=Desks, dc=DSS,c=nl,o=Vodafone
uid=nijss
version: 1
dn: cn=Desk SpecialAdminDesk, ou=Desks, dc=DSS,c=nl,o=Vodafone
dn: cn=DSS Advisors, ou=Groups, dc=DSS,c=nl,o=Vodafone
dn: cn=DSS Dispatcher,ou=Groups,dc=DSS,c=nl,o=Vodafone
dn: cn=Desk Retention Desk,ou=Desks, dc=DSS,c=nl,o=Vodafone
uid=langenbergr
version: 1
dn: cn=Desk SpecialAdminDesk, ou=Desks, dc=DSS,c=nl,o=Vodafone
dn: cn=DSS Advisors, ou=Groups, dc=DSS,c=nl,o=Vodafone
dn: cn=DSS Dispatcher,ou=Groups,dc=DSS,c=nl,o=Vodafone
dn: cn=Desk Retention Desk,ou=Desks, dc=DSS,c=nl,o=Vodafone
.
.
.

i am looping this file for every uid value, and need to separate lines below every matched uid into a file , who can i do this

Thanks in advance Smilie

Eman

---------- Post updated at 12:34 AM ---------- Previous update was at 12:31 AM ----------

please note that the number of lines VARIES after every uid!

Last edited by Scrutinizer; 09-04-2012 at 07:48 AM.. Reason: code tags
# 2  
Old 09-04-2012
Tools

Hi.....

May i see the output wat u need ..


Thanks
Anusurya.ASmilie
# 3  
Old 09-04-2012
Code:
awk '/^uid=/{uid=$2;next}uid!=""{print > uid ".txt"}' FS='=' file

# 4  
Old 09-04-2012
Thanks a lot for your help Smilie
may i explain further:

Please note the following
1- i use a loop on the uid inside the file and i know its value , i.e please let me pass the uid value into the command (will you try it for me please on the sample file i put above)

2- all what i need please is to extract lines from uid till the next uid is met and direct the output into a temp file for a certain purpose(actually i don't need to create a separate file for it)


3- can you write the cmd specifically plz for uid=nijss , i.e plz show me how to get the lines:

Code:
uid=nijss
version: 1
dn: cn=Desk SpecialAdminDesk, ou=Desks, dc=DSS,c=nl,o=Vodafone
dn: cn=DSS Advisors, ou=Groups, dc=DSS,c=nl,o=Vodafone
dn: cn=DSS Dispatcher,ou=Groups,dc=DSS,c=nl,o=Vodafone
dn: cn=Desk Retention Desk,ou=Desks, dc=DSS,c=nl,o=Vodafone


Last edited by Scrutinizer; 09-04-2012 at 07:49 AM.. Reason: code tags
# 5  
Old 09-04-2012
awk

Hi,

Please,
use code tags for cods and data sample.
use proper english.

Code:
awk '/uid=/{p=0;}/uid=nijss/{p=1;}p' file

I didn't understand your requirement. Please explain a bit, Why you looping you uid. do you need to ignore some uid?

Cheers,
Ranga Smilie
# 6  
Old 09-04-2012
actually i am looping on uid from another file and need to get the details related to this uid from the file i sent you , actually this is data related to LDAP.


unfortunatelly i am getting :
Code:
-bash-3.00$ awk '/uid=/{p=0;}/uid=nijss/{p=1;}p'  shortfile
awk: syntax error near line 1
awk: bailing out near line 1


where shortfile is my filel name , i there something missing? :S

---------- Post updated at 06:01 AM ---------- Previous update was at 06:00 AM ----------

Please note i am not ignoring some uid, i just need plz to run the command successfully on 1 uid, and the i will be able to handle the rest

Last edited by Franklin52; 09-04-2012 at 08:26 AM.. Reason: Please use code tags
# 7  
Old 09-04-2012
Please use code tags for codes and data sample click here to know about code tags (video-tutorial)

May i know whats you OS and awk version..?
To get OS
Code:
uname -a

To get awk version
Code:
awk --version

I am getting right output with Linux and GNU Awk 3.1.5.

Cheers,
Ranga Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Print field after pattern in all lines

data: hello--hello1--hello2--#growncars#vello--hello3--hello4--jello#growncars#dello--gello--gelloA--gelloB#growncars# I want to be able to print all the values that are found between the patterns "#growncars#" and the next "#growncars#" on the same line. so the output should be: ... (8 Replies)
Discussion started by: SkySmart
8 Replies

2. Shell Programming and Scripting

sed -- Find pattern -- print remainder -- plus lines up to pattern -- Minus pattern

The intended result should be : PDF converters 'empty line' gpdftext and pdftotext?xml version="1.0"?> xml:space="preserve"><note-content version="0.1" xmlns:/tomboy/link" xmlns:size="http://beatniksoftware.com/tomboy/size">PDF converters gpdftext and pdftotext</note-content>... (9 Replies)
Discussion started by: Klasform
9 Replies

3. Shell Programming and Scripting

Match Pattern and print pattern and multiple lines into one line

Hello Experts , require help . See below output: File inputs ------------------------------------------ Server Host = mike id rl images allocated last updated density vimages expiration last read <------- STATUS ------->... (4 Replies)
Discussion started by: tigerhills
4 Replies

4. Shell Programming and Scripting

How to print the lines which are repeated 3 times in a file?

Hello All, I have a file which has repeated lines. I want to print the lines which are repeated three times. Please help. (3 Replies)
Discussion started by: ailnilanjan
3 Replies

5. Shell Programming and Scripting

Need one liner to search pattern and print everything expect 6 lines from where pattern match made

i need to search for a pattern from a big file and print everything expect the next 6 lines from where the pattern match was made. (8 Replies)
Discussion started by: chidori
8 Replies

6. Shell Programming and Scripting

Print specific lines of a repeated set of data

I have a file that needs 1st line, 2nd line, and 26th line printed from every chunk of data. Each chunk of data contains 26 lines (#line+%line+24 data lines = 26 lines of data repeated). Input file: # This is a data file used for blockA (chunk 1). % 10576 A 10 0 1 04 (data1) 03 (data2)... (2 Replies)
Discussion started by: morrbie
2 Replies

7. Shell Programming and Scripting

print lines up to pattern excluding pattern

11 22 33 44 55 66 77 When pattern 55 is met, print upto it, so output is 11 22 33 44 (1 Reply)
Discussion started by: anilcliff
1 Replies

8. Shell Programming and Scripting

Print the above and below lines for the grep pattern.

Hi, i would like to get the above and below lines of the grep pattern . For ex : file as below: chk1- aaaa 1-Nov chk2 -aaaa ########## chk1-bbbbbb 1-Nov chk2-bbbbbb ######### my search pattern is date : 1-Nov i need the o/p as below chk1- aaaa 1-Nov (6 Replies)
Discussion started by: expert
6 Replies

9. UNIX for Dummies Questions & Answers

Print lines between the search pattern

hi, I have a file say x.txt containing xxx 123 bla bla ... you xxx dfk dbf ... me xxx ... ... keeps on.. i need to search for pattern in the line starting xxx in the file. If pattern matched, I need to fetch all the lines till i find next xxx. (17 Replies)
Discussion started by: prsshini
17 Replies

10. Shell Programming and Scripting

print certain pattern from 2 lines

i have 2 lines comming out of a script o/p.below the line. 2008-10-14 05:47:05,551 INFO - LPBatch: 2008-10-14 05:47:05,575 INFO - Number of Intervals Not Inserted: 1 / 95 -------------------------------------------------------------------------- How to print the below o/p from the... (2 Replies)
Discussion started by: ali560045
2 Replies
Login or Register to Ask a Question