The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > Top Forums > Shell Programming and Scripting
Google UNIX.COM



View Single Post in UNIX Forums - Click on the Thread or Permalink to View Entire Thread -->
  #2 (permalink)  
Old 05-15-2008
Wolja's Avatar
Wolja Wolja is offline
Registered User
 

Join Date: Feb 2002
Posts: 15
Quote:
Originally Posted by mojoman View Post
Hi,

I have to use SED to remove the prefix "219-" from a text file containing phone numbers and I have to remove the ":" as well. I write the following code but it does not seem to work. Can someone help me please?

Code:
mohit@mohit-desktop:~$ sed  -n s/219-/" "/p corp_phones_bak > noprefix1
mohit@mohit-desktop:~$ sed  -n s/:/" "/p noprefix1> noprefix
mohit@mohit-desktop:~$ cat no prefix
cat: no: No such file or directory
cat: prefix: No such file or directory
mohit@mohit-desktop:~$ cat noprefix
 432-4567 Harrison:Joel:M:4540:Accountant:09-12-1985
 432-4587 Mitchell:Barbara:C:4541:Admin Asst:12-14-1995
 432-4589 Olson:Timothy:H:4544:Supervisor:06-30-1983
 432-4591 Moore:Sarah:H:4500 Dept Manager:08-01-1978
 432-4527 Polk:John:S:4520:Accountant:09-22-1998
mohit@mohit-desktop:~$
You've forgotten the ' around the command and it should be -e not -n, which treats things as numbers.

This works as sed does line by line so by chaining the commands it acts on each line in order.
sed -e 's/219-//' -e 's/://' corp_phones_bak

eg
me@somewhere: ~>more ff
219-444:44
219-44444
me@somewhere: ~>sed -e 's/219-//' -e 's/://' ff
44444
44444
Reply With Quote