Count the occurences of strings


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Count the occurences of strings
# 8  
Old 02-24-2014
Here is an awk solution:
Code:
awk '
        {
                v = $1 FS $3 FS $4
                if ( ! ( v in A ) )
                        A[v]++
                v = $2 FS $3 FS $5
                if ( ! ( v in A ) )
                        A[v]++

        }
        END {
                for ( k in A )
                {
                        n = split ( k, T )
                        R[T[1] FS T[n]]++
                }
                for ( k in R )
                {
                        print k, R[k]
                        c += R[k]
                }
                print "Total No -", c
        }
' file

This User Gave Thanks to Yoda For This Post:
# 9  
Old 02-24-2014
Another awk

Code:
awk '
  !($1$2$3 in data){
    data[$1$2$3]++
    b[$1":"$4]++
    b[$2":"$5]++
  }
  END{
    for(i in b){
      split(i,a,/:/)
      print a[1],a[2],b[i]
      s+=b[i]
    }
    print "Total No - " s
  }' infile

--ahamed

Last edited by ahamed101; 02-24-2014 at 03:56 PM.. Reason: Updated
# 10  
Old 02-24-2014
Hi yoda,

Thank you for your answer. I tried to print the results of each file in to another directory f2 with your code. The results of each file are not printing to f2

Code:
for i in f1/*.txt;
do
 awk ' 
 BEGIN {
    path=sprintf("%s", "/home/gomez/Desktop/f2/")
}
        {
                v = $1 FS $3 FS $4
                if ( ! ( v in A ) )
                        A[v]++
                v = $2 FS $3 FS $5
                if ( ! ( v in A ) )
                        A[v]++

        }
        END {
                for ( k in A )
                {
                        n = split ( k, T )
                        R[T[1] FS T[n]]++
                }
                for ( k in R )
                {
                        print k, R[k]
                        c += R[k]
                }
                print "Total No -", c
        }
' $i;
done

---------- Post updated at 04:22 PM ---------- Previous update was at 04:17 PM ----------

Hi Ahamed,

Thank you for your answer. I tried to print the results of each file in to another directory f2 with your code. The results of each file are not printing to f2.
Code:
for i in f1/*.txt;
do
awk '
BEGIN {
    path=sprintf("%s", "/home/gomez/Desktop/f2/")
} 
 
  !($1$2$3 in data){
    data[$1$2$3]++
    b[$1":"$4]++
    b[$2":"$5]++
  }
  END{
    for(i in b){
      split(i,a,/:/)
      print a[1],a[2],b[i]
      s+=b[i]
    }
    print "Total No - " s
  }' $i;
   done

# 11  
Old 02-24-2014
Code:
awk '...'  $i > /your/dest/f2/results

--ahamed
This User Gave Thanks to ahamed101 For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Count occurences of the word without it repeating

Hi, I would like to count the number of ALA occurences without having them to be repeated. In the script I have written now it has 40 repetitions of ALA but it has to be 8. ALA is chosen as one of the 20 values it can have when the script asks for the input of AAA, which for this example is chosen... (7 Replies)
Discussion started by: Aurimas
7 Replies

2. Shell Programming and Scripting

awk count occurences

line number:status, market, keystation 1,SENT,EBS,1 : 1 2,DONE,REU,1 : 1 3,SENT,EBS,2 : 1 4,DONE,EBS,1 : 0 5,SENT,EBS,2 : 0 6,SENT,EBS,2 : 0 7,SENT,EBS,2 : 0 8,SENT,EBS,1 : 1 for each status, market combination I want to keep a tally of active orders. i.e if an order is SENT, then +1, if... (8 Replies)
Discussion started by: Calypso
8 Replies

3. Shell Programming and Scripting

Count occurences based on interval

Hi, I have a file which has 4500 entries 10000 9880 9800 8700 8200 ... ..... ... ... ... ... ... ... ... 50 (1 Reply)
Discussion started by: Diya123
1 Replies

4. UNIX for Dummies Questions & Answers

Count pattern occurences

hi, I have a text..and i need to find a pattern in the text and count to the no of times the pattern occured. i have used grep command ..but the problem is , it shows the occurrences of the pattern but doesn't count no of times the pattern occuries. (5 Replies)
Discussion started by: nvnni
5 Replies

5. Shell Programming and Scripting

Count occurences of string

Hi, Please help me in finding the number of occurences of the string. Example: Apple, green, blue, Apple, Orange, green, blue are the strings can be even in the next line. The o/p should look as: Word Count ----- ----- Apple 2 green 2 Orange 1 blue 2 Thanks (2 Replies)
Discussion started by: acc888
2 Replies

6. Shell Programming and Scripting

Awk to count occurences

Hi, i am in need of an awk script to accomplish the following: Input table looks like: Student1 arts Student2 science Student3 arts Student4 science Student5 science Student6 science Student7 science Student8 science Student9 science Student10 science Student11 science... (8 Replies)
Discussion started by: saint2006
8 Replies

7. Shell Programming and Scripting

to count the number of occurences of a column value

im trying to count the number of occurences of column 2 value(starting from KKK*) of the below file, file.txt using the code cat file.txt | awk ' BEGIN { print "Category Counts"} {FS=","} {NR > 2} { cats = cats + 1} END { for(c in cats) { print c, "=", cats} } ' but its returning as ... (6 Replies)
Discussion started by: michaelrozar17
6 Replies

8. Shell Programming and Scripting

Perl - Count occurences

I have enclosed the script. I am able to find the files that contain my search string but when I try to count the occurences within the file I get zero always. Any help on this. #!/usr/bin/perl my $find = $ARGV; my $replace = $ARGV; my $glob = $ARGV; @filelist = <*$glob>; # process each... (22 Replies)
Discussion started by: TimHortons
22 Replies

9. Shell Programming and Scripting

How to count the number of occurences of this pattern?

Hi all, I have a pattern like this in a file: 123 4 56 789 234 5 67 789 121 3 56 789 222 4 65 789 321 6 90 100 478 8 40 789 243 7 80 789 How can I count the number of occurences of '789' (4th column) in this set...? Thanks for all your help! K (7 Replies)
Discussion started by: kripssmart
7 Replies

10. UNIX for Dummies Questions & Answers

Counting occurences of different strings in a file

Hi, i'd like to know if the following is possible with a shell script, and can't find the answer in the search. Suppose i have a logfile build like this: # 8 :riuyzp1028 # 38 : riuyzp1028 # 25 : riuyvzp1032 # 30 : nlkljpa0202 # 1 : nlklja0205 # 38 : riuyzp1028 # 25 :... (4 Replies)
Discussion started by: Freerider
4 Replies
Login or Register to Ask a Question