Need Help in script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need Help in script
# 1  
Old 12-05-2007
Need Help in script

Hi All;

How are you all? nice to find this forum hoping to be helpful for me.

I have the following file, Data in it as follow:

Dec 5 11:37:00 stringA
Dec 5 11:37:01 stringC
Dec 5 11:37:02 stringA
Dec 5 11:37:03 stringA
Dec 5 11:37:04 stringA
Dec 5 11:37:05 stringF
Dec 5 11:37:06 stringE
Dec 5 11:37:06 stringB
Dec 5 11:37:08 stringB
Dec 5 11:37:09 stringD
Dec 5 11:37:10 stringA
Dec 5 11:37:11 stringC
Dec 5 11:37:11 stringB
Dec 5 11:37:11 stringA
Dec 5 11:37:15 stringA

I want to make a script using perl or bash to determine the top N occurance of a string, Note that the strings are not known, so I can't match on them.

If any one want to help me, I will be grateful for him

Thanks in advance
# 2  
Old 12-05-2007
If any one don't know what is required exactly, send any questions. I realy need this script so important.

Also I think about the solution to put the column of strings in an array, then compare the first element in array with all the array if matched it hit a counter.
# 3  
Old 12-05-2007
Here is a start ...

Code:
BEGIN { FS=" " }

{
    freq[$4]++
}

END {
    i = 0
    for (word in freq) {
       if ( freq[word] > i ) {
            i = freq[word]
            maxword = word
       }
    }
    printf "%s  %d\n", maxword, freq[maxword]
}

# 4  
Old 12-05-2007
Just a sample,

Code:
#! /opt/third-party/bin/perl

open(FILE, "<", $ARGV[0]);

while(<FILE>) {
  chomp;
  my @arr = split(/ /);
  $fileHash{$arr[$#arr]}++;
}

close(FILE);

my $cnt = 0;
foreach my $k ( keys %fileHash ) {
  if( $cnt == $ARGV[1] ) { last; }
  print "key:$k val:$fileHash{$k}\n";
  $cnt++;
}

exit 0

run it as,

perl file.pl <filename> N

filename - name of input file
N - number of occurrences desired
# 5  
Old 12-05-2007
Quote:
Originally Posted by fpmurphy
Here is a start ...

Code:
BEGIN { FS=" " }

{
    freq[$4]++
}

END {
    i = 0
    for (word in freq) {
       if ( freq[word] > i ) {
            i = freq[word]
            maxword = word
       }
    }
    printf "%s  %d\n", maxword, freq[maxword]
}


But this would give only the top '1' the element and not top 'N' th element

here is the modification i had made

Code:
n=3
awk -v var=$n '{ arr[$NF]++ }END{ for ( i in arr ) { if( var ) { print i, arr[i]; var--; } } }' a

# 6  
Old 12-05-2007
Thank you all very much, I can't express my thanks for all of you.
Login or Register to Ask a Question

Previous Thread | Next Thread

5 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to block first bash script until second bash script script launches web server/site?

I'm new to utilities like socat and netcat and I'm not clear if they will do what I need. I have a "compileDeployStartWebServer.sh" script and a "StartBrowser.sh" script that are started by emacs/elisp at the same time in two different processes. I'm using Cygwin bash on Windows 10. My... (3 Replies)
Discussion started by: siegfried
3 Replies

2. Shell Programming and Scripting

Shell script works fine as a standalone script but not as part of a bigger script

Hello all, I am facing a weird issue while executing a code below - #!/bin/bash cd /wload/baot/home/baotasa0/sandboxes_finance/ext_ukba_bde/pset sh UKBA_publish.sh UKBA 28082015 3 if then echo "Param file conversion for all the areas are completed, please check in your home directory"... (2 Replies)
Discussion started by: ektubbe
2 Replies

3. UNIX for Dummies Questions & Answers

Calling a script from master script to get value from called script

I am trying to call a script(callingscript.sh) from a master script(masterscript.sh) to get string type value from calling script to master script. I have used scripts mentioned below. #masterscript.sh ./callingscript.sh echo $fileExist #callingscript.sh echo "The script is called"... (2 Replies)
Discussion started by: Raj Roy
2 Replies

4. Shell Programming and Scripting

Script will keep checking running status of another script and also restart called script at night

I am using blow script :-- #!/bin/bash FIND=$(ps -elf | grep "snmp_trap.sh" | grep -v grep) #check snmp_trap.sh is running or not if then # echo "process found" exit 0; else echo "process not found" exec /home/Ketan_r /snmp_trap.sh 2>&1 & disown -h ... (1 Reply)
Discussion started by: ketanraut
1 Replies

5. Shell Programming and Scripting

create a shell script that calls another script and and an awk script

Hi guys I have a shell script that executes sql statemets and sends the output to a file.the script takes in parameters executes sql and sends the result to an output file. #!/bin/sh echo " $2 $3 $4 $5 $6 $7 isql -w400 -U$2 -S$5 -P$3 << xxx use $4 go print"**Changes to the table... (0 Replies)
Discussion started by: magikminox
0 Replies
Login or Register to Ask a Question