![]() |
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.
|
|
google unix.com
|
|||||||
| Forums | Register | Forum Rules | Links | Albums | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here. |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
|
|
||||
|
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 |
|
||||
|
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
|
|
||||
|
using sed stream ediditor
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?
|
|
||||
|
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 ... |
![]() |
| Bookmarks |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|