Extract patterns with grep and align results


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Extract patterns with grep and align results
# 1  
Old 11-19-2015
Extract patterns with grep and align results

Hello folks!

I got a list with about 880 lines. An example line looks like this:

Code:
attr1=sample,attr2=sample,attr3=sample,email=example@example.org;
EMAIL=example@example.org,attr3=sample,attr4=sample,attr5=sample,
EMAIL=example@example.org,attr5=sample,attr6=sample,email=example@example.org...

Code:
grep -Poi email:\K.*?(?=;|$)'

gave me the desired output, but all results were listed underneath each other.

Code:
email=xxx
email=xxx
email=xxx

Is it possible to align them in a line?:
Code:
email=xxx, email=xxx, email=xxx

and only start a new line if there is a new line in the input?

I hope you understand my question, feel free to ask if you have problems understanding what I meant! Smilie

Thanks and kind regards.

Last edited by Chugger; 11-19-2015 at 07:56 AM..
# 2  
Old 11-19-2015
Hello Chugger,

Welcome to forums, please use code tags for Inputs/codes/commands that you are using in your posts as per forum rules. For your request you could try following and let me know if this helps.
Code:
awk -F, '{for(i=1;i<=NF;i++){if(tolower($i) ~ /email/){A=A?A OFS $i:$i}};print A;A=""}' OFS=,  Input_file

Output will be as follows.
Code:
email=example@example.org;
EMAIL=example@example.org
EMAIL=example@example.org,email=example@example.org

Thanks,
R. Singh
This User Gave Thanks to RavinderSingh13 For This Post:
# 3  
Old 11-19-2015
Darn, that was fast! Thank you very very much, that worked fine.

I have another question out of curiosity: Is it possible to do the same thing with grep or sed?

Kind regards!
# 4  
Old 11-19-2015
Try
Code:
sed 's/^/,/;:B;s/,[^eE][^mM][^aA][^iI][^lL][^,]*,/,/g;tB;s/^,//;s/[[:punct:]]$//' file
email=example@example.org
EMAIL=example@example.org
EMAIL=example@example.org,email=example@example.org

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Extract lines between patterns

I have a list in the format below, how do I read through the list and extract the lines between the ##START## and ##END##, so i can check for specific values between each ##START## & ##END## pattern ##START## RANDOMTEXT DFGSD SDFSDF ##END## ##START## morestuff sdfggfg sdfsdf... (10 Replies)
Discussion started by: squrcles
10 Replies

2. Shell Programming and Scripting

Extract all the sentences that matched two patterns

Hi I have two lists of patterns named A and B consisting of around 200 entries in each and I want to extract all the sentences from a big text file which match atleast one pattern from both A and B. For example, pattern list A consists of : ama ani ahum mari ... ... and pattern... (1 Reply)
Discussion started by: my_Perl
1 Replies

3. Debian

Extract Lines Between 2 patterns if exist...

Hello. I am not having luck with sed or awk today. $ echo "$BrackListFinal" DSCF3649-DSCF3651_Brkt DSCF3649.JPG 2014-07-21 13:34:44 On 1 DSCF3649.RAF 2014-07-21 13:34:44 On 1 DSCF3650.JPG 2014-07-21 13:34:45 On 2 DSCF3650.RAF 2014-07-21 13:34:45 On 2... (3 Replies)
Discussion started by: DSommers
3 Replies

4. Shell Programming and Scripting

Need to extract text repetitively between two patterns

Hi All, I want to extract the text between some pattern which occurs repeatedly in a file. For example my input is like, /home/..... ..........java:25: cannot find symbol ............ /home/...... /home/....... I want to display... (2 Replies)
Discussion started by: Vignesh58
2 Replies

5. Shell Programming and Scripting

Extract line between two patterns

Hi All, I need a script to extract a lines between two patterns.I have done this using grep,cut,tail and head.But its very slow, because my input file contain more than a lakh. COMMAND:XXXXXXXXXXXXXXXXXXXX yyyyy zzzzzz REQUESTSTRING:aaaaaaaaaaaaaaa;11111 222222 333333... (4 Replies)
Discussion started by: rajamohan
4 Replies

6. UNIX for Dummies Questions & Answers

Search and extract matching patterns

%%%%% (9 Replies)
Discussion started by: lucasvs
9 Replies

7. Shell Programming and Scripting

Extract patterns and copy them in different files

Hi All, I have a file which looks like this: Name1;A01 Name2;A01.047 Name3;A01.047.025 Newname1;B01 NewName2;B01.056.32 NewName3;B04.09.43 NewNewName1;C01.03 NewNewName2;C01.034.44As you can see, in the file there is some name and followed by the name is some identifier. These... (5 Replies)
Discussion started by: shoaibjameel123
5 Replies

8. Shell Programming and Scripting

Extract certain patterns from file.

Hi All, I tried extracting this pattern using grep but it did not work. What I have is a file which has contents like this: file:///channel/add-adhd.html file:///channel/allergies.html file:///channel/arthritis.html http://mail.yahoo.com/ http://messenger.yahoo.com/... (2 Replies)
Discussion started by: shoaibjameel123
2 Replies

9. Shell Programming and Scripting

Selecting patterns from the results of grep

Hi All, I'm struggling with a problem that I'm wondering (and hoping!) that someone can help me with. I have a number of .xml files which I'm using grep to search for the string 'include'. I need to extract the value of the include from the grep result. For example, on any given file, I... (2 Replies)
Discussion started by: Steve_altius
2 Replies

10. Shell Programming and Scripting

To extract the string between two patterns

Sample input: Loading File System Networking in nature Closing the System now i need to extract the patterns between the words File and Closing: i.e. sample output: System Networking in Nature Thanks in advance !!!!!!!!!!!!!!!!! (6 Replies)
Discussion started by: aajan
6 Replies
Login or Register to Ask a Question