Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 259
  • Last Modified:

Perl - sort and count

I have a file that has some info for user records, each record is separated by a new line such as:

dn: John Doe
alias: JDoe
contacts: 20101118
contacts: Visable

dn: Mary Doe
alias: MDoe
contacts: 20101118
contacts: Visable
contacts: 20101119
contacts: Hidden

dn: Bill Doe
alias: BDoe
contacts: 20101119
contacts: Hidden


I can pull the records out I want using - Perl -n00e ......

What I need to do is pull out the records that has more than two contacts: lines in them.

How can I pull each record out and do a count of how many lines they have in them that contain "contacts:"....

In the example above I need to be able to pull out the record for:

dn: Mary Doe
alias: MDoe
contacts: 20101118
contacts: Visable
contacts: 20101119
contacts: Hidden

but would like to get a count on all records on the number of contacts: lines in each one.

Thanks,
0
bt707
Asked:
bt707
1 Solution
 
farzanjCommented:
Try this:

 perl -ne 'BEGIN{$/="\n\n";} (@c) = /(contacts[:])/g; print if (@c>2)' xx' filename

Open in new window


If you also want to print the count of contacts, do this:
perl -ne 'BEGIN{$/="\n\n";} (@c) = /(contacts[:])/g; if (@c>2){print;print @c."\n"}' filename

Open in new window

0
 
bt707Author Commented:
Yes that worked well.

Thanks
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now