Visit Our UNIX and Linux User Community


Grep command to show the number of results


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Grep command to show the number of results
# 8  
Old 12-30-2019
Quote:
Originally Posted by nezabudka
Some Sunday jokes
Hey nez,

How about some Monday fun Smilie

Code:
echo "all of the kings of Norway" | awk '{sum+=gsub(/of/,"&")} END{print sum}'

Taken example from Jim's sample echo message, cheers.

Thanks,
R. Singh
This User Gave Thanks to RavinderSingh13 For This Post:
# 9  
Old 12-30-2019
Print count of case insensitive pattern /it/
Code:
echo "It was the best of times, it was the worst of times, it was the age of wisdom, it was the age of foolishness..." | 
perl -nle '$c+=()=/it/gi; END{print $c}'

Output:
Code:
4

This User Gave Thanks to Aia For This Post:
# 10  
Old 12-30-2019
Why not
Code:
awk 'END {print gsub(/of/, "&")}' RS='\0' file

EDIT: fell into the same trap as did nezabudka below: RS=\0 splits on empty lines. Use other non-text chars instead, e.g. \001 or \377...

Last edited by RudiC; 12-30-2019 at 09:00 AM..
This User Gave Thanks to RudiC For This Post:
# 11  
Old 12-30-2019
could be and so
Code:
awk 'END {print NR-1}' RS='pattern' file

--- Post updated at 14:00 ---

Code:
awk -vFPAT='pattern' '{print NF}' RS='' file

--- Post updated at 14:05 ---

or even so
Code:
awk -vFPAT='pattern' '$0=NF' RS='' file

# 12  
Old 12-30-2019
I must admit, I like jim mcnamara's neat response. It made me wonder about the string often all of the kinds of Norway as an example where the string might exist embedded in another word. Is this a problem to you?

By adding the -w flag, you can adjust the output:-
Code:
$ cat 283489
often all of the kings of Norway

$ grep -Fo 'of' 283489 | wc -l
3

$ grep -Fow 'of' 283489 | wc -l
2

Of course, this may or may not be useful, but I thought I should add it into the mix.




Kind regards,
Robin
This User Gave Thanks to rbatte1 For This Post:
# 13  
Old 12-30-2019
Quote:
Originally Posted by nezabudka
.
.
.
Code:
awk -vFPAT='pattern' '{print NF}' RS='' file

.
.
.
Be aware that FPAT is available in gawk only. Also, the RS='' will split the file on empty lines, so use this only if the file is adequately structured.
This User Gave Thanks to RudiC For This Post:
# 14  
Old 12-30-2019
Code:
sed '
:1
s/<pattern>/\r/g
s/[^\r]//g
$!{N;b1}
x
s/$/0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25/
T
:2
x
s/^[0-9\r][0-9]* \?//
t2
x
s/ .*//
' file

no matches - zero
empty line - counter overflow

Last edited by nezabudka; 12-30-2019 at 11:10 AM..
This User Gave Thanks to nezabudka For This Post:

Previous Thread | Next Thread
Test Your Knowledge in Computers #911
Difficulty: Easy
In C, we can get the address of a variable as follows: pointer = &variable;
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Cannot get results from grep command

Hi, i have a file hello.log which as several line that look like the below 2015-12-07 09:46:56 0:339 120.111.12.12 POST /helloWorld 2015-12-07 09:46:57 0:439 122.111.12.12 POST /helloWorld .... when i grep expecting to see results like the below. ... (6 Replies)
Discussion started by: mohtashims
6 Replies

2. Shell Programming and Scripting

How to use command tail -f & show line number.

Hello Guys, I have created function which is as follow: tail -f filename |grep "Key word" output from this command 19-11-2011 21:09:15,234 - INFO Numbement - error number:result = :11 19-11-2011 21:09:15,286 - INFO Numbement - error number:result = :11 19-11-2011 21:09:15,523 - INFO... (5 Replies)
Discussion started by: ooilinlove
5 Replies

3. UNIX for Dummies Questions & Answers

Acting on results from a grep command

Hi, I am currently reading a tar file and searching for a particular word using grep e.g. Plane. At the moment, if a sentence is found with the word "Plane" the sentence itself is piped to another file. Here is the code i am using; for jar in 'cat jar_file.tar'; do tar -tvf... (3 Replies)
Discussion started by: crunchie
3 Replies

4. Shell Programming and Scripting

Grep command to show only process name

Can I modify the grep command to show only a process name? Currently I run ps -efa | grep chk_web to get the following: mousr 3395 1 0 09:36:06 pts/10 0:00 sh /var/opt/scripts/chk_web.sh Can this be changed in any way to get only: /var/opt/scripts/chk_web.sh or chk_web.sh. I... (3 Replies)
Discussion started by: runnerpaul
3 Replies

5. UNIX for Dummies Questions & Answers

Pipe results of Grep Command to LS Comand

I'm using the command grep -l XYZ to get a list of files containing the string XYZ. Then I using the comand ls -l ABC to get the create date timestamp of the each file. I've tried combining the comands using the pipe command, grep -l XYZ | ls -l, but its not working. What am I doing wrong? (3 Replies)
Discussion started by: jhtate
3 Replies

6. Shell Programming and Scripting

Show date/time with tail|grep command

Hi, I have a log file without date/time, and I want that everytime tail|grep find something it displays the date/time and the line. I have tried something like this command but without any luck to display the date/time: tail -F catalina.out | sed "s/^/`date `/" | egrep ... (6 Replies)
Discussion started by: julugu
6 Replies

7. UNIX for Dummies Questions & Answers

putting grep -c results number in a variable

I want to display "no results found" if a grep search of a name that the user inputs is not found anywhere in a certain file, Right now I have this, but doesn't seem to work. Im not sure what to change. read name results=grep -c $name file if ; then echo "No results found." exit... (1 Reply)
Discussion started by: busdude
1 Replies

8. UNIX for Dummies Questions & Answers

ps results - to show user's ps only

hi! how do i make ps results to only shows what's owned by users current job/background process only currently when users issuing ps: I just wanted the result when the user is issuing ps aux is same as when they're doing ps x like this: (which shows result on user's current background... (13 Replies)
Discussion started by: rdns
13 Replies

9. UNIX for Dummies Questions & Answers

My ps -ef|grep command results are chopped off

On our one HP-UX 11i box, we have some very long paths defined. When I want to check on our user processes running, the resulting paths are chopped off. /xyz/abc/123/......./server/b is really a process running in the ..../server/bin directory. Is this a terminal problem or buffer length... (1 Reply)
Discussion started by: bsp18974
1 Replies

10. Shell Programming and Scripting

diffrent results between command line and scripted grep

When I type a command at the command line it supplies one result and the exact same command in a script egrep '^01|^02|^03|^04' file > fileout count = 29353 same count in the script yields a count of 23492 is there any reason this could be happening. (1 Reply)
Discussion started by: r1500
1 Replies

Featured Tech Videos