[Comm] Задачка

Aleksander Fetininsky =?iso-8859-1?q?sashurik_=CE=C1_aviel=2Eru?=
Пт Июл 15 22:46:04 MSD 2005


On Tue, Jul 12, 2005 at 11:43:32 +0400, Pavel Shurubura wrote:
> Здравствуйте !
> 
> Есть текстовый файл с разделителями '|' (pipe).
> В поле номер 5 есть дата такого формата:
> Thu, 07 Jul 2005 14:12:01 +0400
> т.е.
> 
> 123|Text|234|aaa|Thu, 07 Jul 2005 14:12:01 +0400|dsfas|asdkfj
> 
> Как-бы мне её преобразовать в число секунд since epoch ?
> 
> командочка date +'%s' 'Thu, 07 Jul 2005 14:12:01 +0400'
> Выдаёт мне то,что надо. Как вставить её вывод обратно в файл ?
> 
> на awk пытался передать параметр функции system таким образом:
> {
>   system("date +%s $5");
> }
> Но так не получается. Может подскажет кто чего ?
> 
> Спасибо.

С приведёнными данными вот такая строка команды работает:

echo "123|Text|234|aaa|Thu, 07 Jul 2005 14:12:01 +0400|dsfas|asdkfj" | awk
-F\| '{ OFS="|"; $5=D; print$0 }' D=`date +'%s' --date='Thu, 07 Jul 2005
14:12:01+0400'`
123|Text|234|aaa|1120731121|dsfas|asdkfj

Теперь остаётся решить, как передавать awk нужные строки, нужную дату, и
как потом заменять их в файле на строки с изменённым 5-м полем.

Удачи.

Александр.



Подробная информация о списке рассылки community