[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