Sponsored Content
Top Forums Shell Programming and Scripting Get first and last time entries for a given date in CSV file Post 302943248 by mdennis6 on Wednesday 6th of May 2015 05:35:33 PM
Old 05-06-2015
Get first and last time entries for a given date in CSV file

CSV date sorted file has multiple entries for most dates. Need to eliminate all but the first and last entries of each date, being the start and end times for that day.

Code:
2009-11-20,23:57:46
2009-11-20,23:58:46
2009-11-20,23:59:46
2009-11-21,00:00:45
2009-11-21,00:01:46
2009-11-21,00:02:45
2009-11-21,00:22:45
2009-11-21,00:23:45
2009-11-21,00:24:45
2009-11-21,00:25:46

Ideally, output would be:
date,begintime,endtime
HTML Code:
2009-11-20,23:57:46,23:59:46
2009-11-21,00:00:45,00:25:46
I've used bash and gawk to get this far, but haven't grasped how to loop with gawk comparing two lines.

If there's a better solution with perl or php, that would work too.

Thanks
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Processing a log file based on date/time input and the date/time on the log file

Hi, I'm trying to accomplish the following and would like some suggestions or possible bash script examples that may work I have a directory that has a list of log files that's periodically dumped from a script that is crontab that are rotated 4 generations. There will be a time stamp that is... (4 Replies)
Discussion started by: primp
4 Replies

2. Shell Programming and Scripting

Compare date in a csv file

Hi all, how can I compare two defferent lines in a csv file, with the date values, and print the latest date! example: cat test.csv test1;whatever;Wed Nov 26 14:17:48 CET 2008 test1;whatever;Wed Nov 26 17:14:06 CET 2008 Any suggession? (4 Replies)
Discussion started by: research3
4 Replies

3. Shell Programming and Scripting

Format a date in a csv file

So I have a csv file where the 3rd field is a date string in the format yyyy-mm-dd. I need to change it to mm/dd/yyyy. So each line in the csv file looks like: StringData,StringData,2009-02-17,12.345,StringData StringData,StringData,2009-02-16,65.789,StringData Any idea how I can keep... (5 Replies)
Discussion started by: rpiller
5 Replies

4. UNIX for Advanced & Expert Users

Time validation in a csv file

Hi, Im having a hard time in creating a script with the following conditions below. I have a csv file generated which is updated every 5 mins and it contains a timestamp in it. for example: time data 00:00 1 00:05 0 00:10 6 00:15 3 however, there is a time that... (4 Replies)
Discussion started by: mdap
4 Replies

5. Shell Programming and Scripting

Strip time from CSV File?

Hi, I've been trying (and failing miserably) all morning to strip from a CSV file the time from it. Can somebody point me in the right direction on how to do this using sed or awk? The file looks like: "James","07/20/2009-14:40:11" "Steve","08/06/2006-02:34:37"... (5 Replies)
Discussion started by: nmuntz
5 Replies

6. Shell Programming and Scripting

shell script to sort entries in a file by date and time

Hello All, Need a shell script to sort entries in a file by date and time. Below are the entries in the file, i need to sort it first by the date and then time Note :- Date is in MM/DD/YY format and date comes as the 6th & time comes on 7th coloumns respectively. 150 pbnawldb001-b... (10 Replies)
Discussion started by: ajiwww
10 Replies

7. Shell Programming and Scripting

awk work with time change in csv file

Hi, i have csv input file looks like below 3rd field is date and time field i want to change it with user supplied date and time says year=2011 month=09 day=05 hour=11 count=2 when count is say 10 then first ten records should pick and it should increment the... (2 Replies)
Discussion started by: raghavendra.nsn
2 Replies

8. Shell Programming and Scripting

Changing date format in CSV file

I have a CSV file with a date format like this; 11/19/2012 17:37:00,1.372,121.6 11/19/2012 17:38:00,0.743,121.6 Want to change the time stamp to seconds after 1970 so I can get the data in rrdtool. For anyone interested, this is data from a TED5000 unit and is Kwatts and volts. Needs to... (3 Replies)
Discussion started by: ottsm
3 Replies

9. Shell Programming and Scripting

Need to change date format in a csv file using awk

Example: Input csv file 00245DLS,Sitel Ocala,12/31/2014,18:45,1.00,7.00,0.00,0.00 00245DLS,Sitel Ocala,12/31/2014,19:00,-1.00,-1.00,-1.00,-1.00 00245HB,Charlotte,01/01/2015,00:00,-1.00,-1.00,-1.00,0.00 Output csv file 00245DLS,Sitel Ocala,2014/12/31,18:45,1.00,7.00,0.00,0.00 00245DLS,Sitel... (8 Replies)
Discussion started by: adit
8 Replies

10. Shell Programming and Scripting

Date format change in a csv file

Hi, We have csv file where date is coming in MM/DD/YYYY HH:MM:SS (06/23/2015 20:59:12) in multiple places But we need to change the date format to DD/Mon/YYYY HH:MM:SS (23/Jul/2015 20:59:12) using shell script. Please let us know how can we achieve the same. (16 Replies)
Discussion started by: dholea
16 Replies
DATETIME.CREATEFROMFORMAT(3)						 1					      DATETIME.CREATEFROMFORMAT(3)

DateTime::createFromFormat - Returns new DateTime object formatted according to the specified format

       Object oriented style

SYNOPSIS
publicstatic DateTime DateTime::createFromFormat (string $format, string $time, [DateTimeZone $timezone]) DESCRIPTION
Procedural style DateTime date_create_from_format (string $format, string $time, [DateTimeZone $timezone]) Returns new DateTime object formatted according to the specified format. PARAMETERS
o $format - The format that the passed in string should be in. See the formatting options below. In most cases, the same letters as for the date(3) can be used. The following characters are recognized in the $format parameter string +--------------------------+--------------------------------------+---+ | $format character | | | | | | | | | Description | | | | | | | | Example parsable values | | | | | | +--------------------------+--------------------------------------+---+ | | | | | Day | | | | | | | | | --- | | | | | | | | --- | | | | | | | | | | | d and j | | | | | | | | | Day of the month, 2 digits with or | | | | without leading zeros | | | | | | | | | | | | 01 to 31 or 1 to 31 | | | | | | | | | | | D and l | | | | | | | | | A textual representation of a day | | | | | | | | | | | | Mon through Sun or Sunday through | | | | Saturday | | | | | | | | | | | S | | | | | | | | | English ordinal suffix for the day | | | | of the month, 2 characters. It's | | | | ignored while processing. | | | | | | | | | | | | st, nd, rd or th. | | | | | | | | | | | z | | | | | | | | | The day of the year (starting from | | | | 0) | | | | | | | | | | | | 0 through 365 | | | | | | | | | | | Month | | | | | | | | | --- | | | | | | | | --- | | | | | | | | | | | F and M | | | | | | | | | A textual representation of a month, | | | | such as January or Sept | | | | | | | | | | | | January through December or Jan | | | | through Dec | | | | | | | | | | | m and n | | | | | | | | | Numeric representation of a month, | | | | with or without leading zeros | | | | | | | | | | | | 01 through 12 or 1 through 12 | | | | | | | | | | | Year | | | | | | | | | --- | | | | | | | | --- | | | | | | | | | | | Y | | | | | | | | | A full numeric representation of a | | | | year, 4 digits | | | | | | | | Examples: 1999 or 2003 | | | | | | | | | | | y | | | | | | | | | A two digit representation of a | | | | year (which is assumed to be in the | | | | range 1970-2069, inclusive) | | | | | | | | Examples: 99 or 03 (which will be | | | | interpreted as 1999 and 2003, | | | | respectively) | | | | | | | | | | | Time | | | | | | | | | --- | | | | | | | | --- | | | | | | | | | | | a and A | | | | | | | | | Ante meridiem and Post meridiem | | | | | | | | | | | | am or pm | | | | | | | | | | | g and h | | | | | | | | | 12-hour format of an hour with or | | | | without leading zero | | | | | | | | | | | | 1 through 12 or 01 through 12 | | | | | | | | | | | G and H | | | | | | | | | 24-hour format of an hour with or | | | | without leading zeros | | | | | | | | | | | | 0 through 23 or 00 through 23 | | | | | | | | | | | i | | | | | | | | | Minutes with leading zeros | | | | | | | | | | | | 00 to 59 | | | | | | | | | | | s | | | | | | | | | Seconds, with leading zeros | | | | | | | | | | | | 00 through 59 | | | | | | | | | | | u | | | | | | | | | Microseconds (up to six digits) | | | | | | | | Example: 45, 654321 | | | | | | | | | | | Timezone | | | | | | | | | --- | | | | | | | | --- | | | | | | | | | | | e, O, P and T | | | | | | | | | Timezone identifier, or difference | | | | to UTC in hours, or difference to | | | | UTC with colon between hours and | | | | minutes, or timezone abbreviation | | | | | | | | Examples: UTC, GMT, Atlantic/Azores | | | | or +0200 or +02:00 or EST, MDT | | | | | | | | | | | Full Date/Time | | | | | | | | | --- | | | | | | | | --- | | | | | | | | | | | U | | | | | | | | | Seconds since the Unix Epoch (Janu- | | | | ary 1 1970 00:00:00 GMT) | | | | | | | | Example: 1292177455 | | | | | | | | | | |Whitespace and Separators | | | | | | | | | --- | | | | | | | | --- | | | | | | | | | | | (space) | | | | | | | | | One space or one tab | | | | | | | | Example: | | | | | | | | | | | # | | | | | | | | | One of the following separation | | | | symbol: ;, :, /, ., ,, -, ( or ) | | | | | | | | Example: / | | | | | | | | | | |;, :, /, ., ,, -, ( or ) | | | | | | | | | The specified character. | | | | | | | | Example: - | | | | | | | | | | | ? | | | | | | | | | A random byte | | | | | | | | Example: ^ (Be aware that for UTF-8 | | | | characters you might need more than | | | | one ?. In this case, using * is | | | | probably what you want instead) | | | | | | | | | | | * | | | | | | | | | Random bytes until the next separa- | | | | tor or digit | | | | | | | | Example: * in Y-*-d with the string | | | | 2009-aWord-08 will match aWord | | | | | | | | | | | ! | | | | | | | | | Resets all fields (year, month, day, | | | | hour, minute, second, fraction and | | | | timzone information) to the Unix | | | | Epoch | | | | | | | | Without !, all fields will be set to | | | | the current date and time. | | | | | | | | | | | | | | | | | | | | | Resets all fields (year, month, day, | | | | hour, minute, second, fraction and | | | | timzone information) to the Unix | | | | Epoch if they have not been parsed | | | | yet | | | | | | | | | | | | Y-m-d| will set the year, month and | | | | day to the information found in the | | | | string to parse, and sets the hour, | | | | minute and second to 0. | | | | | | | | | | | + | | | | | | | | | If this format specifier is present, | | | | trailing data in the string will not | | | | cause an error, but a warning | | | | instead | | | | | | | | Use DateTime::getLastErrors to find | | | | out whether trailing data was | | | | present. | | | | | | +--------------------------+--------------------------------------+---+ Unrecognized characters in the format string will cause the parsing to fail and an error message is appended to the returned struc- ture. You can query error messages with DateTime::getLastErrors. If $format does not contain the character ! then portions of the generated time which are not specified in $format will be set to the current system time. If $format contains the character !, then portions of the generated time not provided in $format, as well as values to the left-hand side of the !, will be set to correspond- ing values from the Unix epoch. The Unix epoch is 1970-01-01 00:00:00 UTC. o $time - String representing the time. o $timezone - A DateTimeZone object representing the desired time zone. If $timezone is omitted and $time contains no timezone, the current timezone will be used. Note The $timezone parameter and the current timezone are ignored when the $time parameter either contains a UNIX timestamp (e.g. 946684800) or specifies a timezone (e.g. 2010-01-28T15:00:00+02:00). RETURN VALUES
Returns a new DateTime instance or FALSE on failure. EXAMPLES
Example #1 DateTime.createFromFormat(3) example Object oriented style <?php $date = DateTime::createFromFormat('j-M-Y', '15-Feb-2009'); echo $date->format('Y-m-d'); ?> Procedural style <?php $date = date_create_from_format('j-M-Y', '15-Feb-2009'); echo date_format($date, 'Y-m-d'); ?> The above examples will output: 2009-02-15 Example #2 Intricacies of DateTime.createFromFormat(3) <?php echo 'Current time: ' . date('Y-m-d H:i:s') . " "; $format = 'Y-m-d'; $date = DateTime::createFromFormat($format, '2009-02-15'); echo "Format: $format; " . $date->format('Y-m-d H:i:s') . " "; $format = 'Y-m-d H:i:s'; $date = DateTime::createFromFormat($format, '2009-02-15 15:16:17'); echo "Format: $format; " . $date->format('Y-m-d H:i:s') . " "; $format = 'Y-m-!d H:i:s'; $date = DateTime::createFromFormat($format, '2009-02-15 15:16:17'); echo "Format: $format; " . $date->format('Y-m-d H:i:s') . " "; $format = '!d'; $date = DateTime::createFromFormat($format, '15'); echo "Format: $format; " . $date->format('Y-m-d H:i:s') . " "; ?> The above example will output something similar to: Current time: 2010-04-23 10:29:35 Format: Y-m-d; 2009-02-15 10:29:35 Format: Y-m-d H:i:s; 2009-02-15 15:16:17 Format: Y-m-!d H:i:s; 1970-01-15 15:16:17 Format: !d; 1970-01-15 00:00:00 SEE ALSO
DateTime.__construct(3), DateTime.getLastErrors(3), checkdate(3), strptime(3). PHP Documentation Group DATETIME.CREATEFROMFORMAT(3)
All times are GMT -4. The time now is 11:28 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy