From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Fri, 15 Jul 2005 22:46:04 +0400 From: Aleksander Fetininsky To: Community Subject: Re: [Comm] =?koi8-r?B?+sHEwd7LwQ==?= Message-ID: <20050715184604.GB2674@sashurik.aviel.ru> Mail-Followup-To: Community References: <20050712114332.4150060e.pvs@vdnet.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20050712114332.4150060e.pvs@vdnet.ru> User-Agent: Mutt/1.4.2.1i X-BeenThere: community@altlinux.ru X-Mailman-Version: 2.1.5 Precedence: list Reply-To: community@altlinux.ru List-Id: Mailing list for ALT Linux users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jul 2005 18:46:08 -0000 Archived-At: List-Archive: List-Post: 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-м полем. Удачи. Александр.