Sponsored Content
Top Forums Shell Programming and Scripting how to find min, max dates in a file Post 302175561 by ShawnMilo on Friday 14th of March 2008 11:46:34 AM
Old 03-14-2008
Python Solution

Here's something I did in Python. It works as desired, although it may be able to be simplified by someone better at coding Python. Hope it helps.

Code:
#!/usr/bin/env python

"""
   Read the log file, returning the highest and lowest dates for each star_num
"""



import time
import sys
import os

##########
#Make sure we have an input file.
##########
try:
    input_file = sys.argv[1]
except IndexError:
    sys.stderr.write("No input file specified.")
    sys.exit(1)

##########
#Make sure we can open the file
##########
try :
    input = open(input_file, 'r')
except IOError:
    sys.stderr.write("File is invalid.")
    sys.exit(1)
    
def compareDates(x, y, prefer="high"):

    """
        Return higher or lower of two dates
    """

    x_epoch = time.mktime(time.strptime(x, "%m/%d/%Y"))
    y_epoch = time.mktime(time.strptime(y, "%m/%d/%Y"))

    if prefer == "high":
        if x_epoch <= y_epoch:
            myPick = y
        else:
            myPick = x
    else:
        if x_epoch >= y_epoch:
            myPick = y
        else:
            myPick = x

    return myPick


tracker = {}

for line in input:

    ################
    #strip newline
    ################
    line = line.rstrip("\n")

    ################
    #get fields
    ################
    star_num, location, date = line.split(",")

    ################
    #dictionary holding current min and max values
    ################
    minMax = tracker.get(star_num, {})

    old_min = minMax.get("min", "")
    old_max = minMax.get("max", "")

    if old_min == "":
        minMax["min"] = date
    else:
        minMax["min"] = compareDates(date, minMax["min"], "low")

    if old_max == "":
        minMax["max"] = date
    else:
        minMax["max"] = compareDates(date, minMax["max"], "high")

    tracker[star_num] = minMax

input.close()


################
#sort star_nums
################
keys = tracker.keys()
keys.sort()

for key in keys:

    print key, tracker[key]["min"]
    print key, tracker[key]["max"]

 

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. UNIX for Dummies Questions & Answers

How to find whenther given value is in betwwen min and Max in unix shell scripting

Hi I wanted to write a shell script with an if condition Example MinValue=10 MaxValue=30 logvalue = some integer value that script reads from the command line arguement I wanted to check whether log value greater than or equal to10 and less than equal to 30 and proceed with the rest of... (5 Replies)
Discussion started by: pinky
5 Replies

3. Shell Programming and Scripting

To get max/min Date/Timestamp from a file

I want to get maximum/minimum date/timestamp from a data file ? Sample Input File ============= rec#,order_dt,ext_ts 1,2010-12-01,2010-12-01 17:55:23.222222 2,2011-11-05,2010-12-01 19:55:23.222222 3,2009-10-01,2010-12-01 18:55:23.222222 for above file Maximum Order_dt = 2011-11-05... (5 Replies)
Discussion started by: vikanna
5 Replies

4. Shell Programming and Scripting

Find min.max value if matching columns found using AWK

Input_ File : 2 3 4 5 1 1 0 1 2 1 -1 1 2 1 3 1 3 1 4 1 6 5 6 6 6 6 6 7 6 7 6 8 5 8 6 7 Desired output : 2 3 4 5 -1 1 4 1 6 5 6 8 5 8 6 7 (3 Replies)
Discussion started by: vasanth.vadalur
3 Replies

5. Shell Programming and Scripting

How to find the average,min,max ,total count?

Hi , Below is my sample data,I have this 8 column(A,B,C,D,E,F,G,H) in csv file. A , B ,C ,D ,E ,F,G ,H 4141,127337,24,15,20,69,72.0,-3 4141,128864,24,15,20,65,66.0,-1 4141,910053,24,15,4,4,5.0,-1 4141,910383,24,15,22,3,4.0,-1 4141,496969,24,15,14,6,-24.0,-18... (7 Replies)
Discussion started by: vinothsekark
7 Replies

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

7. Homework & Coursework Questions

Min/Max/counter/while loop from file

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: The program is supposed to read in text from a given file ( different samples provided in the homework but not... (1 Reply)
Discussion started by: c++newb
1 Replies

8. Shell Programming and Scripting

Average, min and max in file with header, using awk

Hi, I have a file which looks like this: FID IID MISS_PHENO N_MISS N_GENO F_MISS 12AB43131 12AB43131 N 17774 906341 0.01961 65HJ87451 65HJ87451 N 10149 906341 0.0112 43JJ21345 43JJ21345 N 2826 906341 0.003118I would... (11 Replies)
Discussion started by: kayakj
11 Replies

9. Shell Programming and Scripting

awk script to find min and max value

I need to find the max/min of columns 1 and 2 of a 2 column file what contains the special character ">". I know that this will find the max value of column 1. awk 'BEGIN {max = 0} {if ($1>max) max=$1} END {print max}' input.file But what if I needed to ignore special characters in the... (3 Replies)
Discussion started by: ncwxpanther
3 Replies

10. Shell Programming and Scripting

Find min and max time taken from a log file

You have a log file as attached in sample input with various operations and time taken by each of them. Write a script to find the min and max time taken for each operation. Sample output is attached. Sample Input is given as below: operation1,83621 operation2,72321 operation3,13288... (1 Reply)
Discussion started by: Chandan_Bose
1 Replies
OTHERQ(9F)						   Kernel Functions for Drivers 						OTHERQ(9F)

NAME
OTHERQ, otherq - get pointer to queue's partner queue SYNOPSIS
#include <sys/stream.h> #include <sys/ddi.h> queue_t *OTHERQ(queue_t *q); INTERFACE LEVEL
Architecture independent level 1 (DDI/DKI). PARAMETERS
q Pointer to the queue. DESCRIPTION
The OTHERQ() function returns a pointer to the other of the two queue structures that make up a STREAMS module or driver. If q points to the read queue the write queue will be returned, and vice versa. RETURN VALUES
OTHERQ() returns a pointer to a queue's partner. CONTEXT
OTHERQ() can be called from user or interrupt context. EXAMPLES
Example 1: Setting Queues This routine sets the minimum packet size, the maximum packet size, the high water mark, and the low water mark for the read and write queues of a given module or driver. It is passed either one of the queues. This could be used if a module or driver wished to update its queue parameters dynamically. 1 void 2 set_q_params(q, min, max, hi, lo) 3 queue_t *q; 4 short min; 5 short max; 6 ushort_t hi; 7 ushort_t lo; 8 { 9 q->q_minpsz = min; 10 q->q_maxpsz = max; 11 q->q_hiwat = hi; 12 q->q_lowat = lo; 13 OTHERQ(q)->q_minpsz = min; 14 OTHERQ(q)->q_maxpsz = max; 15 OTHERQ(q)->q_hiwat = hi; 16 OTHERQ(q)->q_lowat = lo; 17 } SEE ALSO
Writing Device Drivers STREAMS Programming Guide SunOS 5.10 11 Apr 1991 OTHERQ(9F)
All times are GMT -4. The time now is 01:40 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy