in reply to grep command

The first thing you want to check is the grep documentation. This together with a few practice with hashes will easily solve your problem.

Many people here get upset with these questions that read like "Hey, I have a problem. Gimme a solution for free. Oh, I don't mind if you improve on what I didn't tell you." Take a look at how Problem in date checking script was received by comments Re: Problem in date checking script and Re: Problem in date checking script. The reference How (Not) To Ask A Question will be a good reading for you as well. It will bring you more sympathetic and useful answers, while helping you to revert your negative XP score.

A one-liner such as this may count the number of lines the word "hello" was found, just like $ grep hello text.out | wc -l (mentioned by derby at Re: grep command).

$ perl -n -e '$count++ if /\bhello\b/; END { print $count }' text.out

A very simple modification will give you what you want. It has to do with the global modifier in regexes (see perlretut).

Note: I've changed the simple /hello/ to /\bhello\b/ because sanku said he was looking for words.

Replies are listed 'Best First'.
Re^2: grep command
by kyle (Abbot) on Jan 18, 2007 at 13:43 UTC

    To get the lines and the count (which is what I think the OP wants):

    perl -ne 'if (/\bhello\b/) { print; $count++ } END { print "count: $count\n" }' text.out

    And if you want to find "hello" regardless of capitalization:

    perl -ne 'if (/\bhello\b/i) { print; $count++ } END { print "count: $count\n" }' text.out

    Also, grep from the command line doesn't need wc's help:

    grep -c hello text.out

    It can match regardless of case too:

    grep -ic hello text.out