Sponsored Content
Top Forums Shell Programming and Scripting Convert Second Column Date Into EPOCH Time And Print Complete Row Post 302979715 by drl on Thursday 18th of August 2016 07:05:23 AM
Old 08-18-2016
Hi.

Here are two alternate solutions:
Code:
#!/usr/bin/env bash

# @(#) s2       Demonstrate date conversion, colwise-epoch, dconv.
# colwise is part of:
# http://www1.cuni.cz/~obo/textutils/   (verified 2016.08.18)
# dateutils.dconv is available in repositories and
# https://github.com/hroptatyr/dateutils        (verified 2016.08.18)

# Utility functions: print-as-echo, print-line-with-visual-space, debug.
# export PATH="/usr/local/bin:/usr/bin:/bin"
LC_ALL=C ; LANG=C ; export LC_ALL LANG
pe() { for _i;do printf "%s" "$_i";done; printf "\n"; }
pl() { pe;pe "-----" ;pe "$*"; }
db() { ( printf " db, ";for _i;do printf "%s" "$_i";done;printf "\n" ) >&2 ; }
db() { : ; }
C=$HOME/bin/context && [ -f $C ] && $C colwise my-epoch dateutils.dconv

FILE=${1-data1}

# Input date format:
# 08/01/2016

pl " Input data file $FILE:"
cat $FILE

pl " Input file, modified separator:"
sed 's/|/,/g' $FILE |
tee f1

pl " Results, (local) \"my-epoch\", replace delimiter after done:"
colwise --delim=',' 2 " my-epoch -e " < f1
# colwise --delim='|' 2 " my-epoch -e " < $FILE # Fails, "|" issue ?

pl " Results, dateutils.dconv:"
dateutils.dconv -S -i "%m/%d/%Y" -f "%s" < $FILE

exit 0

producing:
Code:
$ ./s2

Environment: LC_ALL = C, LANG = C
(Versions displayed with local utility "version")
OS, ker|rel, machine: Linux, 3.16.0-4-amd64, x86_64
Distribution        : Debian 8.4 (jessie) 
bash GNU bash 4.3.30
colwise - ( local: RepRev 1.2, ~/bin/colwise, 2014-03-20 )
my-epoch (local) 1.7
dateutils.dconv dconv 0.3.1

-----
 Input data file data1:
aa|08/01/2016
bb|08/15/2016

-----
 Input file, modified separator:
aa,08/01/2016
bb,08/15/2016

-----
 Results, (local) "my-epoch", replace delimiter after done:
aa,1470027600
bb,1471237200

-----
 Results, dateutils.dconv:
aa|1470009600
bb|1471219200

The first uses a technique for extracting a field, running a command on that field, and replacing the original with the result. Any command may be used, I used a command we have here that does a simple date lookup, relieving us of the tedium of looking up date formats. The extraction-replacement code is a perl program, one of many in the missing-textutils collection, q.v. (It had trouble with "|", so I changed that to a ",", which can be easily changed back, but rather a pain to need to do.)

The second uses a command from a suite available in many repositories and in github.

Best wishes ... cheers, drl
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Convert Epoch time format to normal date time format in the same file

I have a file named "suspected" with series of line like these : {'protocol': 17, 'service': 'BitTorrent KRPC', 'server': '219.78.120.166', 'client_port': 52044, 'client': '10.64.68.44', 'server_port': 8291, 'time': 1226506312L, 'serverhostname': ''} {'protocol': 17, 'service': 'BitTorrent... (3 Replies)
Discussion started by: rk4k
3 Replies

2. Shell Programming and Scripting

Convert Epoch Time to Standard Date and Time & Vice Versa

Hi guys, I know that this topic has been discuss numerous times, and I have search the net and this forum for it. However, non able to address the problem I faced so far. I am on Solaris Platform and unable to install additional packages like the GNU date and gawk to make use of their... (5 Replies)
Discussion started by: DrivesMeCrazy
5 Replies

3. Shell Programming and Scripting

how to convert date time to epoch time in solaris

Hi, Is there any easy way to convert date time(stored in shell variable ) to epoch time in solaris box? As +%s is working on linux but not on solaris, also -d option is not working. Any suggestion please? (6 Replies)
Discussion started by: anshuman0507
6 Replies

4. Shell Programming and Scripting

Convert epoch to human readable date & time format

Hello I have log file from solaris system which has date field converted by Java application using System.currentTimeMillis() function, example is 1280943608380 which equivalent to GMT: Wed, 04 Aug 2010 17:40:08 GMT. Now I need a function in shell script which will convert 1280943608380... (3 Replies)
Discussion started by: Yaminib
3 Replies

5. Shell Programming and Scripting

Shell script to convert epoch time to real time

Dear experts, I have an epoch time input file such as : - 1302451209564 1302483698948 1302485231072 1302490805383 1302519244700 1302492787481 1302505299145 1302506557022 1302532112140 1302501033105 1302511536485 1302512669550 I need the epoch time above to be converted into real... (4 Replies)
Discussion started by: aismann
4 Replies

6. Shell Programming and Scripting

Using awk or nawk to convert epoch time to date format

Looking for some help and usually when I do a search this site comes up. Hopefully someone can give me a little direction as to how to use one of these two commands to achieve what I'm trying to do. What am I trying to do? I need to take the time value in epoch format returned from the... (5 Replies)
Discussion started by: minigts
5 Replies

7. Shell Programming and Scripting

Convert to epoch time

how can i modify the following command to instead provide the epoch time of the interfaces file? perl -le 'print scalar localtime ((stat "/home/skysmart/interfaces"))' Tue Feb 19 03:44:52 2013 i'm hoping to get the equivalent of this command: stat --format=%Y /home/skysmart/interfaces ... (2 Replies)
Discussion started by: SkySmart
2 Replies

8. Shell Programming and Scripting

Convert epoch time to Julian date

Need assistance in converting an epoch time to Julian date To get epoch perl -e 'use Time::Local; print timelocal(1,5,2,12,10,2008), "\n"' (3 Replies)
Discussion started by: ajayram_arya
3 Replies

9. Shell Programming and Scripting

Convert a date stored in a variable to epoch date

I am not able to pass date stored in a variable as an argument to date command. I get current date value for from_date and to_date #!/usr/bin/ksh set -x for s in server ; do ssh -T $s <<-EOF from_date="12-Jan-2015 12:02:09" to_date="24-Jan-2015 13:02:09" echo \$from_date echo... (7 Replies)
Discussion started by: raj48
7 Replies

10. Shell Programming and Scripting

Convert a string to epoch time

Team, I am working on a shell script and i am extracting a date string in "SunOS server" with below format. Mon Jan 21 04:13:48 EST 2021 Can you please assist me the best way to convert the extracted string to epoch time like "date +%s" in Linux. Thanks in advance (1 Reply)
Discussion started by: Girish19
1 Replies
CONVDATE(1)						    InterNetNews Documentation						       CONVDATE(1)

NAME
convdate - Convert to/from RFC 5322 dates and seconds since epoch SYNOPSIS
convdate [-dhl] [-c | -n | -s] [date ...] DESCRIPTION
convdate translates the date/time strings given on the command line, outputting the results one to a line. The input can either be a date in RFC 5322 format (accepting the variations on that format that innd(8) is willing to accept), or the number of seconds since epoch (if -c is given). The output is either ctime(3) results, the number of seconds since epoch, or a Usenet Date: header, depending on the options given. If date is not given, convdate outputs the current date. OPTIONS
-c Each argument is taken to be the number of seconds since epoch (a time_t) rather than a date. -d Output a valid Usenet Date: header instead of the results of ctime(3) for each date given on the command line. This is useful for testing the algorithm used to generate Date: headers for local posts. Normally, the date will be in UTC, but see the -l option. -h Print usage information and exit. -l Only makes sense in combination with -d. If given, Date: headers generated will use the local time zone instead of UTC. -n Rather than outputting the results of ctime(3) or a Date: header, output each date given as the number of seconds since epoch (a time_t). This option doesn't make sense in combination with -d. -s Pass each given date to the RFC 5322 date parser and print the results of ctime(3) (or a Date: header if -d is given). This is the default behavior. EXAMPLES
Most of these examples are taken, with modifications from the original man page dating from 1991 and were run in the EST/EDT time zone. % convdate '10 Feb 1991 10:00:00 -0500' Sun Feb 10 10:00:00 1991 % convdate '13 Dec 91 12:00 EST' '04 May 1990 0:0:0' Fri Dec 13 12:00:00 1991 Fri May 4 00:00:00 1990 % convdate -n '10 feb 1991 10:00' '4 May 90 12:00' 666198000 641880000 % convdate -c 666198000 Sun Feb 10 10:00:00 1991 ctime(3) results are in the local time zone. Compare to: % convdate -dc 666198000 Sun, 10 Feb 1991 15:00:00 +0000 (UTC) % env TZ=PST8PDT convdate -dlc 666198000 Sun, 10 Feb 1991 07:00:00 -0800 (PST) % env TZ=EST5EDT convdate -dlc 666198000 Sun, 10 Feb 1991 10:00:00 -0500 (EST) The system library functions generally use the environment variable TZ to determine (or at least override) the local time zone. HISTORY
Written by Rich $alz <rsalz@uunet.uu.net>, rewritten and updated by Russ Allbery <rra@stanford.edu> for the -d and -l flags. $Id: convdate.pod 8894 2010-01-17 13:04:04Z iulius $ SEE ALSO
active.times(5). INN 2.5.2 2010-02-08 CONVDATE(1)
All times are GMT -4. The time now is 01:18 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy