Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game. |
Notices |
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
|
 |
01-06-2012, 12:58 PM
|
#1
|
Member
Registered: Jan 2007
Posts: 66
Rep:
|
Convert field from epoch to human readable
Hi,
I have a file as follows:
Code:
10.129.187.1 1325914841 98-4B-4A-E4-AA-0E 10.129.89.194 * *
10.129.187.1 1325900260 2C-74-37-E8-D9-99 10.129.89.11 BLACKBERRY-54C6 01-3C-74-37-D8-D9-99
10.129.90.1 1325916914 4C-74-37-72-B7-09 10.129.90.76 BLACKBERRY-821D 01-3C-74-37-52-B7-09
10.129.90.1 1325906004 E6-3E-B6-26-C3-28 10.129.90.151 BLACKBERRY-CA1B 01-E8-3E-B6-23-C3-28
I'd want to convert 2nd field that is epoch time to an human readable format, I've tried with:
Code:
awk 'BEGIN {$2=strftime("%c",$2)} {print}' myfile
But it outputs nothing
Please could you help to do it?
Thanks in advance!
|
|
|
01-06-2012, 01:29 PM
|
#2
|
LQ Guru
Registered: Apr 2005
Location: /dev/null
Posts: 5,818
|
Hello,
It would have to be like follows:
Code:
awk '{$2=strftime("%c",$2)} {print $2}' myfile
Cheers,
Josh
|
|
1 members found this post helpful.
|
01-06-2012, 03:20 PM
|
#3
|
LQ Guru
Registered: Apr 2005
Location: /dev/null
Posts: 5,818
|
Noticed you gave me rep; Did that help and/or solve your problem? If so, could you kindly mark your thread as solved using the thread tools located at the top of the page? Thanks!
Cheers,
Josh
|
|
|
01-06-2012, 11:13 PM
|
#4
|
LQ Guru
Registered: Sep 2009
Location: Perth
Distribution: Arch
Posts: 10,037
|
You can simplify as well if you wish to print the whole line:
Code:
awk '$2=strftime("%c",$2)' file
|
|
|
01-07-2012, 02:39 AM
|
#5
|
LQ Guru
Registered: Sep 2003
Location: Bologna
Distribution: CentOS 6.5 OpenSuSE 12.3
Posts: 10,509
|
An aside note: awk here is useful to extract the 2nd field from a file, but in general, you can convert from epoch to calendar date using the GNU date command, example:
Code:
$ date -ud @1325914841
Sat Jan 7 05:40:41 UTC 2012
Note the @ before the number: it informs the date command that the argument is a time in seconds from epoch (otherwise it tries to interpret it as a date of some - unknown - type).
|
|
1 members found this post helpful.
|
01-07-2012, 05:18 AM
|
#6
|
LQ Guru
Registered: Apr 2005
Location: /dev/null
Posts: 5,818
|
Quote:
Originally Posted by colucix
An aside note: awk here is useful to extract the 2nd field from a file, but in general, you can convert from epoch to calendar date using the GNU date command, example:
Code:
$ date -ud @1325914841
Sat Jan 7 05:40:41 UTC 2012
Note the @ before the number: it informs the date command that the argument is a time in seconds from epoch (otherwise it tries to interpret it as a date of some - unknown - type).
|
Good to know that..... Thanks!
|
|
|
01-08-2012, 02:13 AM
|
#7
|
Member
Registered: Jan 2007
Posts: 66
Original Poster
Rep:
|
Quote:
Originally Posted by colucix
An aside note: awk here is useful to extract the 2nd field from a file, but in general, you can convert from epoch to calendar date using the GNU date command, example:
Code:
$ date -ud @1325914841
Sat Jan 7 05:40:41 UTC 2012
Note the @ before the number: it informs the date command that the argument is a time in seconds from epoch (otherwise it tries to interpret it as a date of some - unknown - type).
|
I knew it but I couldn't use in this case, I've found awk is better here... thanks anyway
|
|
|
All times are GMT -5. The time now is 06:29 PM.
|
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.
|
Latest Threads
LQ News
|
|