Tom's Guide | Tom's Hardware | Tom's Games
![]() |
![]() |
![]() |
can I use OR in searching or multiple search in one go before substitute command...someting of following sort..
:g/kamal/ g/preet/ s/me/myself/g
where I find "kamal" OR "preet" in a line I substitute "me" with "myself" in all lines matchining any of two search criterion.
Warm Regards
Kamalpreet Singh

James
:g/kamal\|preet/p is not working in my cshell vi editor...
I tried it in konsole (linsx m/c) there it is working.How can I use it on cshell vi editor.
Warm Regards
Kamalpreet Singh

Sorry, I do not know the cshell answer.
But if your cshell can successfully run the following sed:
sed -e '/kamal\|preet/ s/me/myself/g' myfile
then one way of making changes within vi is to pass a specified group of lines (one line, one paragraph, entire file) to a unix command or shell script, and that group of lines will be replaced with the output.
For example, to pass entire file to "mysed":
In vi, position yourself on line 1.
!G./mysed./mysed is as follows:
sed -e '/kamal\|preet/ s/me/myself/g' -

James sed is also not working in that way
I tried
"sed -e '/CAR\/PRL/ s/grenoble/Bristol/' sendfile.log"and this command of sed does nothing...
what could be the problem?
is there another way of giving OR operator ?
Warm Regards
Kamalpreet Singh

Kamalpreet,
Yes, we can avoid the regexp OR operator by coding sed as follows:
sed -e /CAR/ba -e /PRL/ba -e b -e :a -e s/grenoble/Bristol/ sendfile.log
Here's what that sed command does:
If line contains CAR, branch to label "a".
If line contains PRL, branch to label "a".If neither of the above branches occur, then branch to end-of-line processing, having made no changes to this line.
The command at label "a" is the change command.

![]() |
running unix command in v...
|
ACUNIX Program
|

This post is quite old and has been locked from receiving new replies. Please create a new posting instead.
| Ads by Google |