The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > Top Forums > UNIX for Dummies Questions & Answers
Google UNIX.COM


UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !!

Reply
 
Submit Tools LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 12-08-2004
Registered User
 

Join Date: Dec 2004
Posts: 2
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Reddit! Stumble this Post!Spurl this Post!
sed help

I have to search and replace a string in a file and I am using the following command in a script.

sed "s/a/b/g" file

All the occurances of a are getting replaced by b except the last line since it does not have a return character at the end of line. If I enter space at the end of last last and
then use the above sed command then it works fine.

I want to know if there is a way I can replace all occurances. Else What is the command that I need to include in my script before the sed command so that I can get that extra space at the end of last line
Reply With Quote
Forum Sponsor
  #2 (permalink)  
Old 12-08-2004
moxxx68's Avatar
Registered User
 

Join Date: Mar 2004
Posts: 301
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Reddit! Stumble this Post!Spurl this Post!
use line numbers anyway instead of g...
ex ,. try
1,$s/a/b/
if not
use
1,(n)s/a/b/
that should work.. then you need to figure out why the g flag is not working.. it may be that you are not using sed according to the file syntax... it could be you need to do something like this s/\<a\>/b/ i can't see the file so I can't tell you.. try this site for help
http://sed.sourceforge.net
moxxx68
__________________
moxxx68
http://www.estarinformado.com.ar/apicmaxmiel/bee-diez.gif
Reply With Quote
  #3 (permalink)  
Old 12-08-2004
bhargav's Avatar
Registered User
 

Join Date: Sep 2004
Location: USA
Posts: 511
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Reddit! Stumble this Post!Spurl this Post!
i do some like this ...

echo "" >> file1 puts the new line at the end of the file.



$ cat abcd.txt
abcde
abdcrewuroewr
abababbaaba
abbabbaba$ echo "" >> abcd.txt
$ cat abcd.txt
abcde
abdcrewuroewr
abababbaaba
abbabbaba
$ sed '${$a \ }' abcd.txt
$ sed 's/a/b/g/ abcd.txt
>
$ sed 's/a/b/g' abcd.txt
bbcde
bbdcrewuroewr
bbbbbbbbbbb
bbbbbbbbb
$
Reply With Quote
  #4 (permalink)  
Old 12-08-2004
bhargav's Avatar
Registered User
 

Join Date: Sep 2004
Location: USA
Posts: 511
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Reddit! Stumble this Post!Spurl this Post!
Sry for the disordered previous post

$ cat abcd.txt
abcde
abdcrewuroewr
abababbaaba
abbabbaba$ echo "" >> abcd.txt
$ cat abcd.txt
abcde
abdcrewuroewr
abababbaaba
abbabbaba
$ sed 's/a/b/g' abcd.txt
bbcde
bbdcrewuroewr
bbbbbbbbbbb
bbbbbbbbb
Reply With Quote
  #5 (permalink)  
Old 12-08-2004
Ygor's Avatar
Moderator
 

Join Date: Oct 2003
Location: -31.96,115.84
Posts: 1,208
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Reddit! Stumble this Post!Spurl this Post!
Some utilities, like sed, are line-based, i.e they only work on complete lines. So, either add a newline to the last line, as bhargav suggests, but if you only want to do simple character translation, then consider using tr, which works on any file, e.g...

tr 'a' 'b' < file1 > file2
Reply With Quote
  #6 (permalink)  
Old 12-08-2004
Registered User
 

Join Date: Dec 2004
Posts: 2
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Reddit! Stumble this Post!Spurl this Post!
Thanks buddies. Really appreciate your help. Both the suggestions; appending space and tr command work fine for me.
Reply With Quote
Google UNIX.COM
Reply

Thread Tools
Display Modes


The 50 most popular UNIX and Linux searches.
Google Search Cloud for The UNIX and Linux Forums
421 service not available, remote server has closed connection ^m automate ftp autosys awk trim bash eval bash exec bash for loop close_wait command copy/move folder in unix couldn't set locale correctly curses.h cut command in unix dead.letter find grep find null character in a unix file grep multiple lines grep or grep recursive inaddr_any inappropriate ioctl for device ksh if logrotate.conf lynx javascript mailx attachment mget mtime ping port remove first character from string in k shell replace space by comma , perl script scp recursive segmentation fault(coredump) sftp script snoop unix stale nfs file handle syn_sent tar exclude test: argument expected unix unix .profile unix forum unix forums unix internals unix interview questions unix mtime unix simulator unix.com vi substitute vi+substitute+end+of+line+character while loop within while loop shell script


All times are GMT -7. The time now is 07:16 AM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited.
The UNIX and Linux Forums Content Copyright ©1993-2008 The CEP Blog All Rights Reserved -Ad Management by RedTyger Visit The Global Fact Book

Content Relevant URLs by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101