sed or other tool to manipulate data, including email addresses


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed or other tool to manipulate data, including email addresses
# 1  
Old 02-19-2008
sed or other tool to manipulate data, including email addresses

I have a list of names and email addresses, like this. The <tab> markers are actually tabs.

joe.blow <tab> joe.blow@wherever.com
tom.t.hall <tab> tom.t.hall@wherever.com
john.r.smith <tab> john.r.smith@wherever.com
sally.jones <tab> sally.jones@state.or.us

I want to parse the data so that it will result in this:

joe <tab> blow <tab> joe.blow@wherever.com
tom <tab> hall<tab> tom.t.hall@wherever.com
john <tab> smith <tab> john.r.smith@wherever.com
sally <tab> jones <tab> sally.jones@state.or.us

So, all I need to do is remove the dot, if present, in the first part of each line. The second part (the email address) goes untouched.

So, I can easily use sed to go through and replace a 'character dot character', since sed looks for the first occurrence on each line, like this:

sed 's/\.[a-z]\./ /' emailfile.txt

That results in this:

joe.blow <tab> joe.blow@wherever.com
tom <tab> hall <tab> tom.t.hall@wherever.com
john <tab> smith <tab> john.r.smith@wherever.com
sally.jones <tab> sally.jones@state.or.us

If I run that sed command again, it will modify the email part (character.dot.character).

How can I get the result I need? Is sed the best tool for this?
# 2  
Old 02-19-2008
awk?
Quote:
$ > cat file
joe.blow joe.blow@wherever.com
tom.t.hall tom.t.hall@wherever.com
john.r.smith john.r.smith@wherever.com
sally.jones sally.jones@state.or.us

$> t.awk
joe blow joe.blow@wherever.com
tom t hall tom.t.hall@wherever.com
john r smith john.r.smith@wherever.com
sally jones sally.jones@state.or.us
$ >
Code:
awk -F'\t' '{ 
    split( $1,arr, ".")
    for(i=1; arr[i]>""; i++) {printf("%s\t",arr[i])}
    print $2
             } ' file

# 3  
Old 02-19-2008
try this
Code:
sed 's/\.[[:alpha:]]\.\(.*\)$/ \1#/;/#/!s/\.\(.*\)$/ \1/;s/#$//' emailfile.txt

# 4  
Old 02-19-2008
Hammer & Screwdriver

Quote:
Originally Posted by jim mcnamara
awk?

Code:
awk -F'\t' '{ 
    split( $1,arr, ".")
    for(i=1; arr[i]>""; i++) {printf("%s\t",arr[i])}
    print $2
             } ' file

this is the right syntax for awk:
Code:
awk -F'\t' '{
   split( $1,arr, ".")
   if ( 3 in arr ) 
      { printf("%s %s\t",arr[1],arr[3]) } 
   else 
      { printf("%s %s\t",arr[1],arr[2]) }  
   print $2
            } ' emailfile.txt

since the given output is exactly as requested
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Extracting email addresses from a flat file

All, I have a flat file which contains an email address in every line. I am trying to find a way to extract all the email addresses delimited by comma (,). Can you please show me a way, it will be very helpful, thanks. (3 Replies)
Discussion started by: sed_beginner19
3 Replies

2. Shell Programming and Scripting

Create email Addresses

Hi, I own 2 websites 1world1game.com and thetoonarmy.net. I can access my 1world accont using mediatemples webmail. The problem i am having is that I want to allow users to register an email from a form on 1World1Game such as tom@thetoonarmy.net and be able to access it from 1world1game. ... (2 Replies)
Discussion started by: rmail2006
2 Replies

3. Shell Programming and Scripting

Email Question - two email addresses

Hello, I have an email script that runs when a process is complete. I would like to have the email sent to two different email addresses, but it is only sending it to the first one. Can you take a look and see what I need to correct? I thought if I surrounded them with double quotes and... (5 Replies)
Discussion started by: jyoung
5 Replies

4. UNIX and Linux Applications

email addresses

Greetings to all. I have installed dadamail on my web site and it works extremely well. I have two questions: 1. I have modified dada to bounce bad emails, but only the first newsletter will use the modifications. If I create another list, it doesn't use the modification. What gives? 2. Are... (0 Replies)
Discussion started by: okbrowder
0 Replies

5. UNIX Desktop Questions & Answers

Using Mailx to send to list of email addresses

Im trying to use a shell script to send to a list of email addresses in a txt file. Here is what i have tried but it keeps sending to dead.letter... Success.ksh contains... mailx -s"Night Batch Success" 'cat /Scripts/email_addresses.txt' < /Scripts/email_body_message.txt The email body... (1 Reply)
Discussion started by: aguad3
1 Replies

6. Forum Support Area for Unregistered Users & Account Problems

keeps telling me my email addresses don't match

HI there, Trying to register but it keeps telling me my email address doesn't match. I tried several times. I even tried closing out and coming back to the page. Thanks (0 Replies)
Discussion started by: r0k3t
0 Replies

7. UNIX for Dummies Questions & Answers

How to delete old email addresses?

Help! Need to delete old email addresses from address book on Dell Windows 98............. -------- The subject line was one long string - I inserted spaces - oombera (1 Reply)
Discussion started by: Deede
1 Replies

8. Programming

How to delete email addresses

I need to delete old email addresses and can't them them out of my address I have a dell and am served by MSN? (Email address removed... Neo) (4 Replies)
Discussion started by: Deede
4 Replies
Login or Register to Ask a Question