2013-09-12 3 views
1

У меня есть файл, каждая строка которого является меткой времени. Я хочу преобразовать каждую строку в формат даты. Содержимое файла, как:Как преобразовать файлы timestamp в формат даты в оболочке unix

1370189811 
1370189830 
1370189851 
1370189859 
1370189889 
1370189890 
1370188951 
1370188955 
1370188976 
1370188981 

я первым монастырем файл в этом формате:

1970-01-01 UTC 1370189811 seconds 
1970-01-01 UTC 1370189830 seconds 
1970-01-01 UTC 1370189851 seconds 
1970-01-01 UTC 1370189859 seconds 
1970-01-01 UTC 1370189889 seconds 
1970-01-01 UTC 1370189890 seconds 
1970-01-01 UTC 1370188951 seconds 
1970-01-01 UTC 1370188955 seconds 
1970-01-01 UTC 1370188976 seconds 
1970-01-01 UTC 1370188981 seconds 

с командой AWK: AWK «{Е (" 1970-01-01 UTC% 10d секунд \ n ", $ 1)} 'test> test1

Затем для каждой строки: 1970-01-01 UTC 1370188981 секунд, я хочу выполнить дату -u на каждой строке. Например:

[email protected]:~/Desktop$ date -d '1970-01-01 UTC 1284117137 seconds' 
Fri Sep 10 19:12:17 CST 2010 

Это будет выводить то, что дата, соответствующая этой временной метки ..

.. Я писал:

awk '{date -d $1}' test1 

но ни один выход .. Как я должен написать эту команду AWK ? Благодаря

ответ

2

Вот начало:

$ awk '{ print(strftime("%F", $1), $1) }' file 

Вы можете настроить свой формат strftime, пока вы не получите то, что вы хотите.

+0

спасибо. Это то, что я хотел .. –

+0

@shijiexu, если бы этот ответ сработал для вас, было бы хорошо принять его как ответ :) –

Смежные вопросы