Computing.Net > Forums > Unix > OR operator for searching patterns

Computer Problems? Computing.Net has over 1,000,000 posts about all things technology related! Over 90% answered within 24 hours! Click here to start participating now! Also, be sure to check out the New User Guide.

OR operator for searching patterns

Reply to Message Icon

Name: kamalpreet
Date: July 3, 2007 at 22:37:55 Pacific
OS: Solaris
CPU/Ram: Ultra 60
Product: Sun
Comment:

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



Sponsored Link
Ads by Google

Response Number 1
Name: James Boothe
Date: July 5, 2007 at 13:25:11 Pacific
Reply:

:g/kamal\|preet/ s/me/myself/g


0

Response Number 2
Name: kamalpreet
Date: July 5, 2007 at 22:46:52 Pacific
Reply:

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


0

Response Number 3
Name: James Boothe
Date: July 6, 2007 at 10:37:24 Pacific
Reply:

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' -


0

Response Number 4
Name: kamalpreet
Date: July 8, 2007 at 21:46:35 Pacific
Reply:

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


0

Response Number 5
Name: James Boothe
Date: July 9, 2007 at 10:18:36 Pacific
Reply:

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.


0

Related Posts

See More



Sponsored Link
Ads by Google
Reply to Message Icon

running unix command in v... ACUNIX Program



Post Locked

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


Go to Unix Forum Home


Sponsored links

Ads by Google


Results for: OR operator for searching patterns

CSH add comment unto files www.computing.net/answers/unix/csh-add-comment-unto-files/6797.html

delete a line ina file using a serach pattern www.computing.net/answers/unix/delete-a-line-ina-file-using-a-serach-pattern/8462.html

need it badly www.computing.net/answers/unix/need-it-badly/6803.html