Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

looking for rgrep port for Solaris (from Linux)

Posted on 2000-03-29
15
Medium Priority
?
443 Views
Last Modified: 2013-12-20
I know that Linux offers an rgrep command and want Solaris binaries. I *do* not want an RPM, please, because I don't have all of the dependancies. Nor do I want (yet another) Perl scrip, fine as they are.

The points will only go to someone who has taken the Linux sources to rgrep & recompiled them under Solais. I'd like a single executable (if possible). Sources might be a bonus too.

Anyone out there done it already?
0
Comment
Question by:graham_k
  • 8
  • 7
15 Comments
 
LVL 40

Expert Comment

by:jlevie
ID: 2667568
Is there some reason that you can't use the recursive option of gnu grep? The only time I compared rgrep and "grep -r" it seemed to me that grep was faster. There's a precompiled grep-2.0 in the Solaris 2.5 collection on http://sunfreeware.com/ that will run on 2.5 and later.
0
 
LVL 6

Author Comment

by:graham_k
ID: 2667680
thanks very much for the suggestion. Unfortunately, it didn't work out.

As I said, I can't install packages. So, I D/Led the sources & built. Unfortunately, grep2.0 doesn't support a -r option.

Any other ideas?
0
 
LVL 40

Expert Comment

by:jlevie
ID: 2667710
Oh, If you can build sources go to http://www.gnu.org/order/ftp.html and pick a mirror site close to you and download the latest version (grep-2.4.2). From your question I thought you only could use a binary and I didn't realize that the recursive option isn't in 2.0. That's my mistake, and I apologise for it.
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
LVL 6

Author Comment

by:graham_k
ID: 2667916
o.k, I found the source of grep 2.3 and that supports a -r option. I guess that I will use that.

Thanks for trying anayway.
0
 
LVL 6

Author Comment

by:graham_k
ID: 2667920
This question has a deletion request Pending
0
 
LVL 40

Expert Comment

by:jlevie
ID: 2667964
This question no longer is pending deletion
0
 
LVL 40

Expert Comment

by:jlevie
ID: 2667965
2.3 had some bugs and performance problems, you'd be better off with 2.4.2.
0
 
LVL 6

Author Comment

by:graham_k
ID: 2668247
sounds good, do you know where I can lay my hands on the source code?
0
 
LVL 6

Author Comment

by:graham_k
ID: 2668315
o.k, found it (by searching on http://www.gnu.org).

I found v2.4, if you know where the source for v2.4.2 is, let me know.

I'd still quite like the Linux rgrep as that coulour highlights the matched string. If I weren't too lazy, I'd hack this code myself to do it.
0
 
LVL 6

Author Comment

by:graham_k
ID: 2668343
btw, a totally stupid question, but why doesn't

grep ifdef *.c

produce the expected result ? I'm forced to

grep ifdef *

which of course slows it down & greps through binaries, etc.

Am I missing something blindingly obvious?
0
 
LVL 40

Expert Comment

by:jlevie
ID: 2669272
As to 2.4.2, I just went to  http://www.gnu.org/order/ftp.html, from an earlier comment, picked the closest mirror (ftp://ftp.uu.net/archive/systems/gnu/ in my case) and then looked in the grep subdir.

"grep ifdef *.c" certainly should look at all .c files in a directory, it does for me. It's the shell's job to expand the wildcard (*.c), grep just processes each of the file names. What do you see if you got to that dir and do "ls *.c"?
0
 
LVL 6

Author Comment

by:graham_k
ID: 2671708
well, as the only respondant, you're going to get the point anyway.  I don't like to sound like I'm trying to get an extra question answered for free here, but I just can't get the resursive part to work, which is the whole point of the exercise.

When in my source directory
      grep ifdef *.c
works just fine. Making it recusrive
      grep -r ifdef *.c
also works (although it' spointless, since there are no subdirectories). BUT, if I cd .. and issue the same command, I get  "No match.". This has got me stumped. The same result (obviously) when I replace -r with its functional equivelant --directories=recurse.

Am I missing something obvious?
0
 
LVL 40

Accepted Solution

by:
jlevie earned 200 total points
ID: 2671846
While I do love to "get the points", the biggest reason that I participate is to help people solve problems. And, as you correctly pointed out, the whole point of the exercise is to do recursive greps, so it isn't a case of getting a second answer for free in my opionion.

The recursive option for grep takes a directory as the argument, not a file pattern. Thus, "grep -r ulong /usr/include" will search all files in the /usr/include tree. As you've noted about some of the other methods, that isn't exactly efficient as it'll examine all files. A frequently used method of limiting grep to only one class of files is to use find. For example, find some-dir -name "*.c" -exec grep gettimeofday {} \;" will descend into some-dir (which can be . for the current dir), passing each ".c" file encounterd to grep for examination. Not as convient as rgrep, but workable.

This evening I found sources to rgrep. I can't get the site that's supposedly the home to respond (looks like a router problem). But I did find a src rpm that looks to be current. I haven't yet had time to try building it. Since you are on a Solaris box, the src rpm won't be of just a whole lot of use. I don't see a good way to pass it in one of these commnets, but if you'll drop an email to jlevie@bellsouth.net, I'll send you what I've found. BTW, the reason the sources are hard to find is that they are a part of the jed editor, go figure...
0
 
LVL 6

Author Comment

by:graham_k
ID: 2671888
Aha! so "grep -r ifdef ." works. Wonderful!

I've played with various permutations of piping the output of find to grep. About a year ago I went heavilly into research mode on this. There were all sorts of Un*x guru flame wars on UseNet, about starting a new shell for each file found, use of xargs, etc. I can't remember it all. I also didn't fancy remembering & typing in a complex command every time I needed it. Strangely, what works on the command line, does not work from within a shell script. Also, I couldn't figure out how to set up an alias for the command. I did find some useful Perl scripts, but I reckoned that the best way has to be one dedicated binary.


yes, I found those Jed sources too, but couldn't get them to build. I can't remember why. Missing some includes, I think. I'll drop you a mail, in case you have any success.

At least now that you explained that the file parameter becomes a driectory, I _can_ do what I wanted to do. So I will award you the points. No need to stop posting, though :-)

Thanks again.
0
 
LVL 40

Expert Comment

by:jlevie
ID: 2671907
Okay... I'll take a crack at getting it to compile tomorrow.
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Why Shell Scripting? Shell scripting is a powerful method of accessing UNIX systems and it is very flexible. Shell scripts are required when we want to execute a sequence of commands in Unix flavored operating systems. “Shell” is the command line i…
In this post we will learn different types of Android Layout and some basics of an Android App.
Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…
Learn how to get help with Linux/Unix bash shell commands. Use help to read help documents for built in bash shell commands.: Use man to interface with the online reference manuals for shell commands.: Use man to search man pages for unknown command…
Suggested Courses
Course of the Month11 days, 4 hours left to enroll

885 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question