in reply to Re^3: changing date format in and out
in thread changing date format in and out

Great, thanks a lot!
I hope not to impose on you for a very last favor, how would it be possible to consolidate this logic into a single perl line command (a one liner)?
I hope you can show me, thanks again!

Replies are listed 'Best First'.
Re^5: changing date format in and out
by McDarren (Abbot) on Feb 14, 2009 at 03:53 UTC
    perl -ne 'print scalar localtime' < infile > outfile
    - the "-n" switch, causes perl to assume a "while <>" loop (see perldoc perlrun)
    - the $_ can be dropped, because it is implicit
    - there is no need to chomp, as you probably want the newline anyway

    Darren :)

      The  $_ in  localtime $_ is not optional: without it, the function returns current local time; likewise gmtime().

      The  -l (that's a small ell) command line switch may be useful: it will automatically  chomp the input record separator (IRS) on input and append the ORS on output. (IRS and ORS are both a newline by default.) As mentioned, not so important on input, but on output this gives you your converted time strings each on a separate line rather than as one (very long) line.

      >cat utimes 1111111 22222222 333333333 >perl -wMstrict -lne "print scalar localtime $_" < utimes > ltimes >perl -wMstrict -lne "print scalar gmtime $_" < utimes > gmtimes >cat ltimes Tue Jan 13 15:38:31 1970 Mon Sep 14 23:50:22 1970 Thu Jul 24 19:35:33 1980 >cat gmtimes Tue Jan 13 20:38:31 1970 Tue Sep 15 04:50:22 1970 Fri Jul 25 00:35:33 1980
      Example without  -l command line switch:
      >perl -wMstrict -ne "print scalar localtime $_" < utimes > ltimes >cat ltimes Tue Jan 13 15:38:31 1970Mon Sep 14 23:50:22 1970Thu Jul 24 19:35:33 19 +80
        I replaced gmtime with localtime and it seems to work properly. Thanks Any advice anyway?