ALT Linux Community general discussions
 help / color / mirror / Atom feed
* [Comm] Задачка
@ 2005-07-12  7:43 Pavel Shurubura
  2005-07-12  7:59 ` Pavel Shurubura
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Pavel Shurubura @ 2005-07-12  7:43 UTC (permalink / raw)
  To: community

Здравствуйте !

Есть текстовый файл с разделителями '|' (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");
}
Но так не получается. Может подскажет кто чего ?

Спасибо.

-- 
With kindest regards, pvs.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Comm] Задачка
  2005-07-12  7:43 [Comm] Задачка Pavel Shurubura
@ 2005-07-12  7:59 ` Pavel Shurubura
  2005-07-12  8:01 ` Dmytro O. Redchuk
  2005-07-15 18:46 ` Aleksander Fetininsky
  2 siblings, 0 replies; 5+ messages in thread
From: Pavel Shurubura @ 2005-07-12  7:59 UTC (permalink / raw)
  To: community

On Tue, 12 Jul 2005 11:43:32 +0400
Pavel Shurubura <pvs@vdnet.ru> wrote:

> Здравствуйте !
> 
> командочка date +'%s' 'Thu, 07 Jul 2005 14:12:01 +0400'
> Выдаёт мне то,что надо. Как вставить её вывод обратно в файл ?

  Ошибся здесь:
date +'%s' --date='Thu, 07 Jul 2005 14:12:01' +0400

> 
> на awk пытался передать параметр функции system таким образом:
> {
>   system("date +%s $5");

И здесь соответственно:
system("date +%s --date=$5");

> }
> Но так не получается. Может подскажет кто чего ?
> 
> Спасибо.
> 
> -- 
> With kindest regards, pvs.
> _______________________________________________
> Community mailing list
> Community@altlinux.ru
> https://lists.altlinux.ru/mailman/listinfo/community
> 


-- 
With kindest regards, pvs.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Comm] Задачка
  2005-07-12  7:43 [Comm] Задачка Pavel Shurubura
  2005-07-12  7:59 ` Pavel Shurubura
@ 2005-07-12  8:01 ` Dmytro O. Redchuk
  2005-07-12  8:23   ` Pavel Shurubura
  2005-07-15 18:46 ` Aleksander Fetininsky
  2 siblings, 1 reply; 5+ messages in thread
From: Dmytro O. Redchuk @ 2005-07-12  8:01 UTC (permalink / raw)
  To: community

On Tue, Jul 12, 2005 at 11:43:32AM +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");
> }
> Но так не получается. Может подскажет кто чего ?
Если awk, то функция mktime. Хоть и горемойно, т.к. ей надо ещё скормить
дату в нужном ей виде.

Но awk'ом это всё можно -- "задача имеет решение" Ж-)

ps. Всё равно нужно как-то манипулировать пятым полем, так как там, как
    минимум, "лишняя" запятая.

> 
> Спасибо.
> 
> -- 
> With kindest regards, pvs.

-- 
  _,-=._              /|_/|
  `-.}   `=._,.-=-._.,  @ @._,
     `._ _,-.   )      _,.-'
        `    G.m-"^m`m'        Dmytro O. Redchuk



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Comm] Задачка
  2005-07-12  8:01 ` Dmytro O. Redchuk
@ 2005-07-12  8:23   ` Pavel Shurubura
  0 siblings, 0 replies; 5+ messages in thread
From: Pavel Shurubura @ 2005-07-12  8:23 UTC (permalink / raw)
  To: community

On Tue, 12 Jul 2005 11:01:55 +0300
"Dmytro O. Redchuk" <dor@ldc.net> wrote:

> 
> Но awk'ом это всё можно -- "задача имеет решение" Ж-)

 Я в этом уверен на все 100%.  :)


> ps. Всё равно нужно как-то манипулировать пятым полем, так как
> там, как
>     минимум, "лишняя" запятая.
> 

  Да нет, запятая не лишняя. Командочка date --date'дата'
проглатывает это пятое поле на ура. А с ключиком -s даёт
требуемые секунды.


-- 
With kindest regards, pvs.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Comm] Задачка
  2005-07-12  7:43 [Comm] Задачка Pavel Shurubura
  2005-07-12  7:59 ` Pavel Shurubura
  2005-07-12  8:01 ` Dmytro O. Redchuk
@ 2005-07-15 18:46 ` Aleksander Fetininsky
  2 siblings, 0 replies; 5+ messages in thread
From: Aleksander Fetininsky @ 2005-07-15 18:46 UTC (permalink / raw)
  To: Community

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-м полем.

Удачи.

Александр.


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2005-07-15 18:46 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-07-12  7:43 [Comm] Задачка Pavel Shurubura
2005-07-12  7:59 ` Pavel Shurubura
2005-07-12  8:01 ` Dmytro O. Redchuk
2005-07-12  8:23   ` Pavel Shurubura
2005-07-15 18:46 ` Aleksander Fetininsky

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git