Sponsored Content
Top Forums Shell Programming and Scripting Help in finding the max and min position Post 302203304 by ahjiefreak on Saturday 7th of June 2008 10:16:34 PM
Old 06-07-2008
Help in finding the max and min position

Hi,

I have this input file called ttbitnres (which is catenated and sorted):-

8 0.4444 213
10 0.5555 342
11 0.5555 321
12 0.5555 231
13 0.4444 400


My code is at :-
Code:
#!/bin/bash 
 
echo -e Version "\t" Number of Pass "\t" Number of Fail "\t" Rank Position "\t"Min "\t" Max "\t"Gap"\t"Overall Rank %"\t\t" Qe"\t\t" Score>BugpercttbitCorr.txt
 
cat file.txt|while read LINE
do
 
version=`echo "${LINE}"| awk '{print $1}'`
 
char=`echo "${LINE}"| awk '{print $2}'`
 
cd ~/siemens/schedule2/newoutputs/$version
#get the last line number plus one because of gcc extra one line at top of the code
last=`cat bitresult.txt|tail -1|awk {'print $1+1'}`
echo $last
#catenate the ttres files to append numbers
cat -n ttbitres.txt>ttbitnres.txt
 
echo $char
echo $version
i=`grep -w  "^$char" bitresult.txt|awk '{print $2}'`
j=`grep -w  "^$char" bitresult.txt|awk '{print $3}'`

q=`echo $i $j |awk '{if($1 == 0 && $2 == 0) print "0"; else printf("%f",($2/($1+$2)))}'`

read min max gap k c < <(awk -v var="$char" -v last="$last" '
 
!found || (found && $2 == score) {
	scores[$1] = $2
}
 
$3 == var {
	score = $2
	k = $1
	found = 1
}
 
END {
 
min=k
	for (i  in scores){
 
		if (scores[i] == score)
		{		                          
		       if (i < min )
				min = i
		       if (i > max)
				max = i
 
		}
       }   
 
    gap=max-min+1;
    if(gap==1)
      c=(k/last)*min*100;    
   else 
      c=(k/last)*((k-min)/gap)*100;
 
print min,max,gap,k,c
 
 
}' ttbitnres.txt)
 
score=$(awk -v "char=$char" '$2 == char { val=$1 }END {print val?val:0 }' ttbitres.txt)

echo -e $version"\t\t\t"$i"\t\t\t"$j"\t\t"$k"\t\t"$min"\t\t"$max"\t"$gap"\t"$c"\t"$q"\t"$score>>BugpercttbitCorr.txt
 
done

What im doing is grab the "position" which is $1 in this file for specified $3(line number), So let say i am intrerested to find out line number 321 score.
Since the score of 321 is 0.5555, I wanted to handle 2 cases.

1st) If there are any other elements before or after whcih have same score,
i need to compare the position ($1) and take the min(first seen minimum position which have the score 0.5555) and take the max(last seen maximum position which have score 0.5555). This should return us position 10 for min
and 12 for max.

2nd) If (in other case) there are no other elements with similar score, i will just take the first and only position which have score of 0.5555 which in this case should return us 11.

I tried to load the above input but it seems not able to compare properly to find the min and max. It returns me 10 as min and "nothing" for max. For your info, I print out as echo -e...

Please advise. Thanks.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

min and max value of process id

We are running a AIX 5.2 OS. Would anyone happen to know what the max value for a process id could be? Thanks jerardfjay :) (0 Replies)
Discussion started by: jerardfjay
0 Replies

2. Shell Programming and Scripting

get min, max and average value

hi! i have a file like the attachement. I'd like to get for each line the min, max and average values. (there is 255 values for each line) how can i get that ? i try this, is it right? BEGIN {FS = ","; OFS = ";";max=0;min=0;moy=0;total=0;freq=890} $0 !~ /Trace1:/ { ... (1 Reply)
Discussion started by: riderman
1 Replies

3. Shell Programming and Scripting

Data stream between min and max

Hi, I have a text file containing numbers. There are up to 6 numbers per row and I need to read them, check if they are 0 and if they are not zero check if they are within a given interval (min,max). If they exceed the max or min they should be set to max or min respectively, if they are in the... (4 Replies)
Discussion started by: f_o_555
4 Replies

4. Shell Programming and Scripting

to find min and max value for each column!

Hello Experts, I have got a txt files which has multiple columns, I want to get the max, min and diff (max-min) for each column in the same txt file. Example: cat file.txt a 1 4 b 2 5 c 3 6 I want ouput like: cat file.txt a 1 4 b 2 5 c 3 6 Max 3 6 Min 1 4 Diff 2 2 awk 'min=="" ||... (4 Replies)
Discussion started by: dixits
4 Replies

5. Homework & Coursework Questions

Perl max and min issues

I have to find the min and max on a specific column in a file after sending that column and one other to a output file but I keep getting a maximum of zero below is what i have so far if anyone can give me advice on what i am doing wrong the help would be much appreciated # ! /usr/bin/perl -w... (2 Replies)
Discussion started by: dstewie
2 Replies

6. Shell Programming and Scripting

Converting a date to friday date and finding Min/Max date

Dear all, I have 2 questions. I have a file with many rows which has date of the format YYYYMMDD. 1. I need to change the date to that weeks friday date(Ex: 20120716(monday) to 20120720). Satuday/Sunday has to be changed to next week friday date too. 2. After converting the date to... (10 Replies)
Discussion started by: 2001.arun
10 Replies

7. Shell Programming and Scripting

Print min and max value from two column

Dear All, I have data like this, input: 1254 10125 1254 10126 1254 10127 1254 10128 1254 10129 1255 10130 1255 10131 1255 10132 1255 10133 1256 10134 1256 10135 1256 10137... (3 Replies)
Discussion started by: aksin
3 Replies

8. Shell Programming and Scripting

Get the min avg and max with awk

aaa: 3 ms aaa: 2 ms aaa: 5 ms aaa: 10 ms .......... to get the 3 2 5 10 ...'s min avg and max something like min: 2 ms avg: 5 ms max: 10 ms (2 Replies)
Discussion started by: yanglei_fage
2 Replies

9. Shell Programming and Scripting

How to get min and max values using awk?

Hi, I need your kind help to get min and max values from file based on value in $5 . File1 SP12.3 stc 2240806 2240808 + ID1_N003 ID2_N003T0 SP12.3 sto 2241682 2241684 + ID1_N003 ID2_N003T0 SP12.3 XE 2239943 2240011 + ID1_N003 ID2_N003T0 SP12.3 XE 2240077 2241254 + ID1_N003 ... (12 Replies)
Discussion started by: redse171
12 Replies

10. Shell Programming and Scripting

Get min and max value in column

Gents, I have a big file file like this. 5100010002 5100010004 5100010006 5100010008 5100010010 5100010012 5102010002 5102010004 5102010006 5102010008 5102010010 5102010012 The file is sorted and I would like to find the min and max value, taking in the consideration key1... (3 Replies)
Discussion started by: jiam912
3 Replies
ZMQ_PGM(7)							    0MQ Manual								ZMQ_PGM(7)

NAME
zmq_pgm - 0MQ reliable multicast transport using PGM SYNOPSIS
PGM (Pragmatic General Multicast) is a protocol for reliable multicast transport of data over IP networks. DESCRIPTION
0MQ implements two variants of PGM, the standard protocol where PGM datagrams are layered directly on top of IP datagrams as defined by RFC 3208 (the pgm transport) and "Encapsulated PGM" where PGM datagrams are encapsulated inside UDP datagrams (the epgm transport). The pgm and epgm transports can only be used with the ZMQ_PUB and ZMQ_SUB socket types. Further, PGM sockets are rate limited by default and incur a performance penalty when used over a loop-back interface. For details, refer to the ZMQ_RATE, ZMQ_RECOVERY_IVL and ZMQ_MCAST_LOOP options documented in zmq_setsockopt(3). Caution The pgm transport implementation requires access to raw IP sockets. Additional privileges may be required on some operating systems for this operation. Applications not requiring direct interoperability with other PGM implementations are encouraged to use the epgm transport instead which does not require any special privileges. ADDRESSING
A 0MQ address string consists of two parts as follows: transport://endpoint. The transport part specifies the underlying transport protocol to use. For the standard PGM protocol, transport shall be set to pgm. For the "Encapsulated PGM" protocol transport shall be set to epgm. The meaning of the endpoint part for both the pgm and epgm transport is defined below. Connecting a socket When connecting a socket to a peer address using zmq_connect() with the pgm or epgm transport, the endpoint shall be interpreted as an interface followed by a semicolon, followed by a multicast address, followed by a colon and a port number. An interface may be specified by either of the following: o The interface name as defined by the operating system. o The primary IPv4 address assigned to the interface, in its numeric representation. Note Interface names are not standardised in any way and should be assumed to be arbitrary and platform dependent. On Win32 platforms no short interface names exist, thus only the primary IPv4 address may be used to specify an interface. A multicast address is specified by an IPv4 multicast address in its numeric representation. WIRE FORMAT
Consecutive PGM datagrams are interpreted by 0MQ as a single continuous stream of data where 0MQ messages are not necessarily aligned with PGM datagram boundaries and a single 0MQ message may span several PGM datagrams. This stream of data consists of 0MQ messages encapsulated in frames as described in zmq_tcp(7). PGM datagram payload The following ABNF grammar represents the payload of a single PGM datagram as used by 0MQ: datagram = (offset data) offset = 2OCTET data = *OCTET In order for late joining consumers to be able to identify message boundaries, each PGM datagram payload starts with a 16-bit unsigned integer in network byte order specifying either the offset of the first message frame in the datagram or containing the value 0xFFFF if the datagram contains solely an intermediate part of a larger message. Note that offset specifies where the first message begins rather than the first message part. Thus, if there are trailing message parts at the beginning of the packet the offset ignores them and points to first initial message part in the packet. The following diagram illustrates the layout of a single PGM datagram payload: +------------------+----------------------+ | offset (16 bits) | data | +------------------+----------------------+ The following diagram further illustrates how three example 0MQ frames are laid out in consecutive PGM datagram payloads: First datagram payload +--------------+-------------+---------------------+ | Frame offset | Frame 1 | Frame 2, part 1 | | 0x0000 | (Message 1) | (Message 2, part 1) | +--------------+-------------+---------------------+ Second datagram payload +--------------+---------------------+ | Frame offset | Frame 2, part 2 | | 0xFFFF | (Message 2, part 2) | +--------------+---------------------+ Third datagram payload +--------------+----------------------------+-------------+ | Frame offset | Frame 2, final 8 bytes | Frame 3 | | 0x0008 | (Message 2, final 8 bytes) | (Message 3) | +--------------+----------------------------+-------------+ EXAMPLE
Connecting a socket. /* Connecting to the multicast address 239.192.1.1, port 5555, */ /* using the first Ethernet network interface on Linux */ /* and the Encapsulated PGM protocol */ rc = zmq_connect(socket, "epgm://eth0;239.192.1.1:5555"); assert (rc == 0); /* Connecting to the multicast address 239.192.1.1, port 5555, */ /* using the network interface with the address 192.168.1.1 */ /* and the standard PGM protocol */ rc = zmq_connect(socket, "pgm://192.168.1.1;239.192.1.1:5555"); assert (rc == 0); SEE ALSO
zmq_connect(3) zmq_setsockopt(3) zmq_tcp(7) zmq_ipc(7) zmq_inproc(7) zmq(7) AUTHORS
This manual page was written by the 0MQ community. 0MQ 2.2.0 04/04/2012 ZMQ_PGM(7)
All times are GMT -4. The time now is 09:07 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy