The UNIX and Linux Forums  
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.

Go Back   The UNIX and Linux Forums > Top Forums > Shell Programming and Scripting
.
google unix.com



Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here.

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish
 
LinkBack Thread Tools Search this Thread Rate Thread Display Modes
  #1 (permalink)  
Old 03-16-2008
vadharah vadharah is offline
Registered User
  
 

Join Date: Mar 2008
Posts: 27
Question using sed stream ediditor

Really do appreciate your help guys am now starting to get a grip on bash but not quite......

suppose i have a statement

fileA....
Foot is a word we can use in all aspects of our life and has several meanings.part of it can a foot pedal or rather in football as well.


i want to use sed to replace just the word 'foot' nothing more and when it ats the begining of a line replace with caps.......if i wanted to replace it with say play.....this becomes

Play is a word we can use in all aspects of our life and has several meanings.part of it can a play pedal or rather in playball as well.

been trying this

#!/bin/bash

IFS=$'\n'


for i in $(cat fileA);
do
echo $i | sed -r 's/^[foot]^/play:g' >> fileB
done

Last edited by vadharah; 03-16-2008 at 02:29 PM.. Reason: easier for viewers
  #2 (permalink)  
Old 03-16-2008
fpmurphy's Avatar
fpmurphy fpmurphy is offline Forum Staff  
Moderator
  
 

Join Date: Dec 2003
Location: Florida
Posts: 1,861
Code:
sed -e 's/Foot/Play/g' -e 's/foot/play/g'
  #3 (permalink)  
Old 03-17-2008
vadharah vadharah is offline
Registered User
  
 

Join Date: Mar 2008
Posts: 27
Quote:
Originally Posted by fpmurphy View Post
Code:
sed -e 's/Foot/Play/g' -e 's/foot/play/g'
i have tried this but words like football r being affected i need football to remain unchanged only change foot where the word is not part of another word
  #4 (permalink)  
Old 03-17-2008
Tytalus's Avatar
Tytalus Tytalus is offline Forum Advisor  
echo {1..9}^2\;|bc
  
 

Join Date: Jun 2003
Location: Scotland
Posts: 414
How about just adding a space or two...:

Code:
 sed -e 's/Foot /Play /g' -e 's/ foot / play /g'
  #5 (permalink)  
Old 03-17-2008
vadharah vadharah is offline
Registered User
  
 

Join Date: Mar 2008
Posts: 27
using sed stream ediditor

Quote:
Originally Posted by Tytalus View Post
How about just adding a space or two...:

Code:
 sed -e 's/Foot /Play /g' -e 's/ foot / play /g'
Thanx!!! that seems to do the trick...is there any way i can improve it to say for example notify me that there is a similar word but it is part of another word?
  #6 (permalink)  
Old 03-17-2008
era
Guest
  
 

Posts: n/a
Bits: 0 [Banking]
You are getting outside the realm of what sed can reasonably do. At this point I would probably switch to Perl.

Code:
perl -pe 's/\bFoot\b/Play/g;s/\bfoot\b/play/g; warn if m/[Ff]oot/' files ...
This should handle full stop and other punctuation, which the sed script won't (without additional tinkering).
Sponsored Links
Closed Thread

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT -4. The time now is 10:52 AM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited. Language translation by Google.
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios
The UNIX and Linux Forums Content Copyright ©1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant URLs by vBSEO 3.2.0