Sponsored Content
Top Forums Shell Programming and Scripting Awk script to sort and display total occurancies Post 302658655 by rakeshkumar on Tuesday 19th of June 2012 05:43:39 PM
Old 06-19-2012
Awk script to sort and display total occurancies

Hi

I am not a good awk programer but the below code serving my purpose

Code:
Input
process  12936 user-name   15u  IPv4 7438309      0t0  TCP prdabc.cesi.com:42016->efh.ijk.com:50002 (ESTABLISHED)
process  12942 user-name   13u  IPv4 7764990      0t0  TCP abc.abc.com:9402->192.168.1.1:63919 (ESTABLISHED)
process  12942 user-name   19u  IPv4 7807116      0t0  TCP abc.abc.com:9402->192.168.1.1:63958 (ESTABLISHED)
process  12942 user-name   21u  IPv4 7800224      0t0  TCP abc.abc.com:9402->192.168.1.2:dvt-system (ESTABLISHED)
process  12942 user-name   22u  IPv4 7850124      0t0  TCP abc.abc.com:9402->192.168.1.3:50744 (ESTABLISHED)
process  12942 user-name   23u  IPv4 7800259      0t0  TCP abc.abc.com:9402->192.168.1.2:procos-lm (ESTABLISHED)
process  12942 user-name   24u  IPv4 7800282      0t0  TCP abc.abc.com:9402->192.168.1.2:pda-data (ESTABLISHED)
process  12942 user-name   25u  IPv4 7800285      0t0  TCP abc.abc.com:9402->192.168.1.2:pda-sys (ESTABLISHED)
process  12942 user-name   26u  IPv4 7800319      0t0  TCP abc.abc.com:9402->192.168.1.2:semaphore (ESTABLISHED)
process  12942 user-name   13u  IPv4 7764990      0t0  TCP abc.abc.com:9402->192.168.1.1:63919 (ESTABLISHED)
process  12942 user-name   19u  IPv4 7807116      0t0  TCP abc.abc.com:9402->192.168.1.1:63958 (ESTABLISHED)

The below code Displays number of ips with 90402 port
lsof -i -p 9402 | grep "9402-" | awk '{print $9}' | awk '{FS=":"}{print $2}' | awk '{FS="->"}{print $2}'

The below code is displaying the unique entries
lsof -i -p 9402 | grep "9402-" | awk '{print $9}' | awk '{FS=":"}{print $2}' | awk '{FS="->"}{print $2}'| sort | uniq

But I want to format it something like below
<IP-Address>     <Number of occurrences>
192.168.1.1                     3
192.168.1.2                     2

Any Help is much appreciated
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

ls I do not want to display total with ls

I'm trying to write the filenames only to a file. The following line works: ls -l /home/alex >> log/filetrack.log But the file filetrack.log also contains the "total" i.e. the first line is total 3462984 Also, I would like only the filename, date and size to be listed. However, my main... (3 Replies)
Discussion started by: rx82000
3 Replies

2. Shell Programming and Scripting

Using sort with awk script

I have a file with four fields and an awk script that strips out one field displaying the remaining three. I have added headings for each of these fields such as Player - Year - RBIs then below it comes the data. What I am trying to do is sort the RBIs field in my script from most to least at the... (9 Replies)
Discussion started by: Trellot
9 Replies

3. Shell Programming and Scripting

sort files by date, delete oldest, if total size bigger than

hello people i need your help please i want to achieve the following with the simplest, most efficient shell-tools: i have a directory with a lot of files from users. the script should check which partition the dir is on if the partition with the directory is more than 90% full ... (2 Replies)
Discussion started by: scarfake
2 Replies

4. Shell Programming and Scripting

awk script to calculate total

Hi First field is the Record Type. A Record Type 5 can have multiple Record Type 6's before another Record Type 5 appears. I want to calculate the total of fields at position 8-11 on Record type 6 when Record Type 5 has a field at position 11-14 equals to '2222'. then it should delete the lines... (2 Replies)
Discussion started by: appsguy616
2 Replies

5. Shell Programming and Scripting

Display LineNo Incase Total Number Of Delimiter Does matches in a given variable

I have many files .dat extension. requirement is to display line no if no of delimiter does not matches in a given variable lets say File: REF_BETOS.dat HCPCS_OR_CPT_CODE~BETOS_CODE~TERMINATION_DATE 0001F~Z2~ 0003T~I4~B20061231 0005F~Z2~~~ 0008T~P8~B20061231... (1 Reply)
Discussion started by: ainuddin
1 Replies

6. Emergency UNIX and Linux Support

Grab total page read from webalizer display in html

Hi, I need a way to grab the total combines since inception, total pages read from webalizer on my centos server or any other location (as long as since inception) and display the result live on my website So with each visit it would be increasing, or perhaps live (ajax) not sure But can... (0 Replies)
Discussion started by: lawstudent
0 Replies

7. UNIX for Dummies Questions & Answers

Display total hard disk size?

Hi, Using Redhat, how do I display total hard disk size? I know how to do that in Solaris, you can type, format. It will show how big the disks are. This is what I did so for. $ df -t ext3 -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 ... (1 Reply)
Discussion started by: samnyc
1 Replies

8. Homework & Coursework Questions

Shell script/awk to sort text

1. The problem statement, all variables and given/known data: I have a file with a fragment of a novel, which I have to clear from punctuation and sort all the words contained one per line and non duplicated, all this going to a file called "palabras". Here is fragment of the input file: ... (4 Replies)
Discussion started by: ektorzoza
4 Replies

9. UNIX for Beginners Questions & Answers

Shell script to call and sort awk script and output

I'm trying to create a shell script that takes a awk script that I wrote and a filename as an argument. I was able to get that done but I'm having trouble figuring out how to keep the header of the output at the top but sort the rest of the rows alphabetically. This is what I have now but it is... (1 Reply)
Discussion started by: Eric7giants
1 Replies
A2P(1)							 Perl Programmers Reference Guide						    A2P(1)

NAME
a2p - Awk to Perl translator SYNOPSIS
a2p [options] [filename] DESCRIPTION
A2p takes an awk script specified on the command line (or from standard input) and produces a comparable perl script on the standard out- put. OPTIONS Options include: -D<number> sets debugging flags. -F<character> tells a2p that this awk script is always invoked with this -F switch. -n<fieldlist> specifies the names of the input fields if input does not have to be split into an array. If you were translating an awk script that processes the password file, you might say: a2p -7 -nlogin.password.uid.gid.gcos.shell.home Any delimiter can be used to separate the field names. -<number> causes a2p to assume that input will always have that many fields. -o tells a2p to use old awk behavior. The only current differences are: * Old awk always has a line loop, even if there are no line actions, whereas new awk does not. * In old awk, sprintf is extremely greedy about its arguments. For example, given the statement print sprintf(some_args), extra_args; old awk considers extra_args to be arguments to "sprintf"; new awk considers them arguments to "print". "Considerations" A2p cannot do as good a job translating as a human would, but it usually does pretty well. There are some areas where you may want to examine the perl script produced and tweak it some. Here are some of them, in no particular order. There is an awk idiom of putting int() around a string expression to force numeric interpretation, even though the argument is always inte- ger anyway. This is generally unneeded in perl, but a2p can't tell if the argument is always going to be integer, so it leaves it in. You may wish to remove it. Perl differentiates numeric comparison from string comparison. Awk has one operator for both that decides at run time which comparison to do. A2p does not try to do a complete job of awk emulation at this point. Instead it guesses which one you want. It's almost always right, but it can be spoofed. All such guesses are marked with the comment ""#???"". You should go through and check them. You might want to run at least once with the -w switch to perl, which will warn you if you use == where you should have used eq. Perl does not attempt to emulate the behavior of awk in which nonexistent array elements spring into existence simply by being referenced. If somehow you are relying on this mechanism to create null entries for a subsequent for...in, they won't be there in perl. If a2p makes a split line that assigns to a list of variables that looks like (Fld1, Fld2, Fld3...) you may want to rerun a2p using the -n option mentioned above. This will let you name the fields throughout the script. If it splits to an array instead, the script is probably referring to the number of fields somewhere. The exit statement in awk doesn't necessarily exit; it goes to the END block if there is one. Awk scripts that do contortions within the END block to bypass the block under such circumstances can be simplified by removing the conditional in the END block and just exiting directly from the perl script. Perl has two kinds of array, numerically-indexed and associative. Perl associative arrays are called "hashes". Awk arrays are usually translated to hashes, but if you happen to know that the index is always going to be numeric you could change the {...} to [...]. Itera- tion over a hash is done using the keys() function, but iteration over an array is NOT. You might need to modify any loop that iterates over such an array. Awk starts by assuming OFMT has the value %.6g. Perl starts by assuming its equivalent, $#, to have the value %.20g. You'll want to set $# explicitly if you use the default value of OFMT. Near the top of the line loop will be the split operation that is implicit in the awk script. There are times when you can move this down past some conditionals that test the entire record so that the split is not done as often. For aesthetic reasons you may wish to change the array base $[ from 1 back to perl's default of 0, but remember to change all array sub- scripts AND all substr() and index() operations to match. Cute comments that say "# Here is a workaround because awk is dumb" are passed through unmodified. Awk scripts are often embedded in a shell script that pipes stuff into and out of awk. Often the shell script wrapper can be incorporated into the perl script, since perl can start up pipes into and out of itself, and can do other things that awk can't do by itself. Scripts that refer to the special variables RSTART and RLENGTH can often be simplified by referring to the variables $`, $& and $', as long as they are within the scope of the pattern match that sets them. The produced perl script may have subroutines defined to deal with awk's semantics regarding getline and print. Since a2p usually picks correctness over efficiency. it is almost always possible to rewrite such code to be more efficient by discarding the semantic sugar. For efficiency, you may wish to remove the keyword from any return statement that is the last statement executed in a subroutine. A2p catches the most common case, but doesn't analyze embedded blocks for subtler cases. ARGV[0] translates to $ARGV0, but ARGV[n] translates to $ARGV[$n]. A loop that tries to iterate over ARGV[0] won't find it. ENVIRONMENT
A2p uses no environment variables. AUTHOR
Larry Wall <larry@wall.org> FILES
SEE ALSO
perl The perl compiler/interpreter s2p sed to perl translator DIAGNOSTICS
BUGS
It would be possible to emulate awk's behavior in selecting string versus numeric operations at run time by inspection of the operands, but it would be gross and inefficient. Besides, a2p almost always guesses right. Storage for the awk syntax tree is currently static, and can run out. perl v5.8.9 2005-03-10 A2P(1)
All times are GMT -4. The time now is 05:17 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy