Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

changing date format in and out

by gio001 (Acolyte)
on Feb 13, 2009 at 23:37 UTC ( #743739=perlquestion: print w/ replies, xml ) Need Help??
gio001 has asked for the wisdom of the Perl Monks concerning the following question:

Hello, oh wise ones, forgive my simple question .... being new to the perl world. I have a file containing data like:
1234553326
thousands of lines in the file. this is a DATE represented in julian, I guess, well I would like to process all the lines in the file and generate another output file with each original date translated into something like:
Fri Feb 13 14:28:46 2009
or possibly a format like
Fri 02 13 14 28 46 2009
I have been experimenting with this command on my AIX box:
perl -e 'use POSIX;print ctime(1234553326)'
yet I would not want to do a while loop executing this for each input one line at a time passing the input as a parameter to the ctime function and producing the output one line at a time, I am sure resource wise it is very bad!
I suspect what I am asking can probably be achieved in a single line of perl code!

So I am asking for your help, please answer when you get a chance.
Sincerely

Comment on changing date format in and out
Select or Download Code
Re: changing date format in and out
by mr_mischief (Monsignor) on Feb 14, 2009 at 00:14 UTC
    If you have thousands of Unix epoch times (which is what you sure appear to have -- the number of seconds since midnight January 1st 1970 UTC) then why do you think you can process them all without... well, processing them all? The loop over thousands will be simpler and take less time that you think.

    while ( <> ) { chomp; print (gmtime $_); }

    See localtime and gmtime, although there's nothing wrong with ctime().

      Thanks,
      well I understand and I agree that I will have to execute in a loop, what I am trying to learn is a way to create the while loop inside the perl world and not issue thousands of invocations to perl from a straight unix ksh loop, if you understand what I mean.
      So can you please illustrate for me how can I structure an invocation statement(s) to perl with an incoming file name, an output file name and the real while loop as the core of what I will ask perl to execute for me?
      Thanks !
        Abandon KSH
        The example that was given to you is the guts of what you are asking for.

        Take the code that was given to you by mr_mischief, and save it in a file (lets call it foo.pl). Then just pass your input file through that, ie:

        perl foo.pl < infile > outfile
        Although, you will probably want to change the line:
        print (gmtime $_);
        to read:
        print scalar gmtime($_);
        Or alternatively, if you want your output in local time, then:
        print scalar localtime($_);
        Hope this helps,
        Darren

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://743739]
Approved by Perlbotics
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (7)
As of 2014-12-25 16:36 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (160 votes), past polls