Sponsored Content
Top Forums Shell Programming and Scripting How to count number of results found? Post 302787143 by demmel on Thursday 28th of March 2013 05:59:09 PM
Old 03-28-2013
Quote:
Originally Posted by hanson44
The problem is that /bin/ksh apparently does not exist on your system.

Please try the following, assuming it runs on your system:
Code:
$ cat file1
word1
word2
word3

Code:
$ cat file2
word1
word2 word3
word2 word3 word3 word4

Code:
$ cat temp.sh
grep -f file1 file2 > good_lines
sed "s/\<[a-zA-Z0-9_]\+\>/&\n/g" good_lines > split_lines
grep -f file1 split_lines | sed "s/^ *//; s/ *$//" > matched_words
sort matched_words | uniq -c

Code:
$ ./temp.sh
      1 word1
      2 word2
      3 word3

I defined a "Word" as the standard [a-zA-Z0-9_].
So this includes "Words" with numbers and underscores.
Alternatively, you could use [a-zA-Z].
Or maybe you want to count "auto-correct" as one word.
In that case, [a-zA-Z-] would work.
The standard word you defined is great as it is.

I created the temp script but it did not work as expected in one of my systems

Code:
 $ ./temp.sh
sed: Function s/\<[a-zA-Z0-9_]\+\>/& cannot be parsed.

I'm not sure why some sed functions are not functioning/installed here. Any ideas to circumvent this error?

However in my other system the result was as expected, so thanks a lot!

---------- Post updated at 06:59 PM ---------- Previous update was at 06:47 PM ----------

Quote:
Originally Posted by demmel
The standard word you defined is great as it is.

I created the temp script but it did not work as expected in one of my systems

Code:
 $ ./temp.sh
sed: Function s/\<[a-zA-Z0-9_]\+\>/& cannot be parsed.

I'm not sure why some sed functions are not functioning/installed here. Any ideas to circumvent this error?

However in my other system the result was as expected, so thanks a lot!
I was able to prevent the error by using single quotes instead of double quotes, still the result did not come right, see below:

Code:
$ ./temp.sh
   1 word1
   1 word2 word3
   1 word2 word3 word3 word4

This is the content of the file split_lines:
Code:
word1
word2 word3
word2 word3 word3 word4

Any ideas?

Last edited by demmel; 03-28-2013 at 07:09 PM..
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

awk | stop after specified number of results

I am searching some rather large text files using grep and or awk. What I would like to know is if there is a way (either with grep, awk, or realy any other unix tool) to stop the search when a predifined number of results are returned. I would like to do this for speed purpuses. When i get... (6 Replies)
Discussion started by: evan108
6 Replies

2. Shell Programming and Scripting

Number count per number ranges

Hi, I have a question here that need to get advise from all of you. Let say I have a set of data 12347777 12359899 12347677 12360090 12347688 12359979 12359009 12367022 12346677 I need to count the number that appear in each numbering ranges and the output is like below: Prefix ... (5 Replies)
Discussion started by: shirleyeow
5 Replies

3. 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

4. Shell Programming and Scripting

count the number of lines that start with the number

I have a file with contents similar to this. abcd 1234 4567 7666 jdjdjd 89289 9382 92 jksdj 9823 298 I want to write a shell script which count the number of lines that start with the number (disregard the lines starting with alphabets) (1 Reply)
Discussion started by: grajp002
1 Replies

5. Shell Programming and Scripting

found count of them

Hi guys i must write a program which read logfile of my program and print the result. i wrote this and i want print of the user who have virus. i extract user and put it in file, now i want know each user have how many virus. how can i do this in bash, my file is like: and soso i... (5 Replies)
Discussion started by: Skipper
5 Replies

6. Shell Programming and Scripting

Awk - Count instances of a number in col1 and put results in a col2 (new) of diff file

I have 2 files as follows: filename1: : 6742 /welcome/mundial98_ahf1_404.htm 1020 6743 /welcome/mundial98_ahf1_404.htm 2224 6744 /welcome/mundial_ef1_404.htm 21678 6745 /welcome/mundial_if_404.htm 4236 6746 /welcome/mundial_lf1_404.htm 21678 filename2: 6746 894694763 1... (2 Replies)
Discussion started by: jontjioe
2 Replies

7. Shell Programming and Scripting

how to add the number of row and count number of rows

Hi experts a have a very large file and I need to add two columns: the first one numbering the incidence of records and the another with the total count The input file: 21 2341 A 21 2341 A 21 2341 A 21 2341 C 21 2341 C 21 2341 C 21 2341 C 21 4567 A 21 4567 A 21 4567 C ... (6 Replies)
Discussion started by: juelillo
6 Replies

8. Shell Programming and Scripting

awk Help -- If match found return the count

Hi All, I need to get the count of records in the file, if the passing parameter matches with the list of records in the file. Below is my example source file: Test1.dat 20120913 20120913 20120912 20120912 20120912 20120912 20120912 20120913 20120913 20120912 In my script I am... (5 Replies)
Discussion started by: bbc17484
5 Replies

9. Shell Programming and Scripting

Count occurences of a character in a file by sorting results

Hello, I try to sort results of occurences in an array by using awk but I can't find the right command. that's why I'm asking your help ! :) Please see below the command that I run: awk '{ for ( i=1; i<=length; i++ ) arr++ }END{ for ( i in arr ) { print i, arr } }' dictionnary.txt ... (3 Replies)
Discussion started by: destin45
3 Replies

10. UNIX for Beginners Questions & Answers

Grep command to show the number of results

Hi I wanted to know if there is an option in grep command to show the number of results (not the number of lines of findings). Thanks (14 Replies)
Discussion started by: abdossamad2003
14 Replies
All times are GMT -4. The time now is 09:35 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy