ALT Linux Community general discussions
 help / color / mirror / Atom feed
* [Comm] find ... -exec и выходные потоки 
@ 2005-09-26 12:15 spider
  2005-09-26 12:45 ` [Comm] " Michael Shigorin
  2005-09-26 22:50 ` [Comm] " Dmitry V. Levin
  0 siblings, 2 replies; 6+ messages in thread
From: spider @ 2005-09-26 12:15 UTC (permalink / raw)
  To: ALT Linux Community

Уважаемые господа, прошу не пинать, если спросил что не так.

Есть куча файлов типа foo-???.ext. Эти файлы нужно обрабатывать
программами из пакета netpbm. Эти проги принимают на входе имя файла
и отдают результат в stdout. Т.е. обычный их запуск выглядит типа так

$ ppmtopgm foo-001.ppm > foo-001.pgm

или с использованием фильтров

$ ppmtopgm foo-001.ppm | pnmtopnm > foo-001.pgm

все это работает для ручного запуска, но как только все это
попадает в строку -exec от find, наступает (_*_)
строка

$ find -name 'foo-*.ppm' -exec ppmtopgm {} '>' {}.pgm \;

вместо того, чтобы обработать все файлы каталога
порождает пустой файл {}.pgm.

Как всетаки правильно запускать команды с потоками через
find -exec?




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

* [Comm] Re: find ... -exec и выходные потоки 
  2005-09-26 12:15 [Comm] find ... -exec и выходные потоки spider
@ 2005-09-26 12:45 ` Michael Shigorin
  2005-09-27  8:43   ` spider
  2005-09-26 22:50 ` [Comm] " Dmitry V. Levin
  1 sibling, 1 reply; 6+ messages in thread
From: Michael Shigorin @ 2005-09-26 12:45 UTC (permalink / raw)
  To: ALT Linux Community

On Mon, Sep 26, 2005 at 03:15:10PM +0300, spider wrote:
> $ find -name 'foo-*.ppm' -exec ppmtopgm {} '>' {}.pgm \;

-exec 'sh -c ppmtopgm {} > {}.pgm' \;
?

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/
 ----       visit our conference (Oct 1):
--          http://conference.osdn.org.ua


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

* Re: [Comm] find ... -exec и выходные потоки
  2005-09-26 12:15 [Comm] find ... -exec и выходные потоки spider
  2005-09-26 12:45 ` [Comm] " Michael Shigorin
@ 2005-09-26 22:50 ` Dmitry V. Levin
  2005-09-27  8:55   ` spider
  1 sibling, 1 reply; 6+ messages in thread
From: Dmitry V. Levin @ 2005-09-26 22:50 UTC (permalink / raw)
  To: ALT Linux general discussion list

[-- Attachment #1: Type: text/plain, Size: 914 bytes --]

On Mon, Sep 26, 2005 at 03:15:10PM +0300, spider wrote:
[...]
> строка
> 
> $ find -name 'foo-*.ppm' -exec ppmtopgm {} '>' {}.pgm \;
> 
> вместо того, чтобы обработать все файлы каталога
> порождает пустой файл {}.pgm.
> 
> Как всетаки правильно запускать команды с потоками через
> find -exec?

Пожалуйста, прочтите документацию, там описан ваш случай:

$ man find |colcrt |sed -ne '/^EXAMPLES/,/^E/ p' |sed -ne '/{}/,/\.$/ p'
       find . -type f -exec file '{}' \;

       Runs  `file'  on  every file in or below the current directory.  Notice
       that the braces are enclosed in single quote marks to protect them from
       interpretation  as  shell  script punctuation.   The semicolon is simi-
       larly protected by the use of a backslash, though ';' could  have  been
       used in that case also.

P.S. В старых версиях пакета findutils этого примера нет.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: [Comm] Re: find ... -exec и выходные потоки
  2005-09-26 12:45 ` [Comm] " Michael Shigorin
@ 2005-09-27  8:43   ` spider
  2005-09-27 12:19     ` Michael Shigorin
  0 siblings, 1 reply; 6+ messages in thread
From: spider @ 2005-09-27  8:43 UTC (permalink / raw)
  To: shigorin, ALT Linux Community

Michael Shigorin пишет:

>On Mon, Sep 26, 2005 at 03:15:10PM +0300, spider wrote:
>  
>
>>$ find -name 'foo-*.ppm' -exec ppmtopgm {} '>' {}.pgm \;
>>    
>>
>
>-exec 'sh -c ppmtopgm {} > {}.pgm' \;
>?
>  
>
почти так, только закавычить пришлось чуть иначе

-exec sh -c 'ppmtopgm {} > {}.pgm' \;

Спасибо за подсказку.

>------------------------------------------------------------------------
>
>_______________________________________________
>Community mailing list
>Community@altlinux.ru
>https://lists.altlinux.ru/mailman/listinfo/community
>



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

* Re: [Comm] find ... -exec и выходные потоки
  2005-09-26 22:50 ` [Comm] " Dmitry V. Levin
@ 2005-09-27  8:55   ` spider
  0 siblings, 0 replies; 6+ messages in thread
From: spider @ 2005-09-27  8:55 UTC (permalink / raw)
  To: ALT Linux Community

Dmitry V. Levin пишет:

>Пожалуйста, прочтите документацию, там описан ваш случай:
>
>$ man find |colcrt |sed -ne '/^EXAMPLES/,/^E/ p' |sed -ne '/{}/,/\.$/ p'
>       find . -type f -exec file '{}' \;
>
>       Runs  `file'  on  every file in or below the current directory.  Notice
>       that the braces are enclosed in single quote marks to protect them from
>       interpretation  as  shell  script punctuation.   The semicolon is simi-
>       larly protected by the use of a backslash, though ';' could  have  been
>       used in that case also.
>
>P.S. В старых версиях пакета findutils этого примера нет.
>  
>
$ man find | col -b | grep -i runs
$
Наверное у меня старая версия.
$ rpm -qa | grep findut
findutils-4.1.20-alt2
$




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

* Re: [Comm] Re: find ... -exec и выходные потоки
  2005-09-27  8:43   ` spider
@ 2005-09-27 12:19     ` Michael Shigorin
  0 siblings, 0 replies; 6+ messages in thread
From: Michael Shigorin @ 2005-09-27 12:19 UTC (permalink / raw)
  To: ALT Linux Community

On Tue, Sep 27, 2005 at 11:43:53AM +0300, spider wrote:
> >>$ find -name 'foo-*.ppm' -exec ppmtopgm {} '>' {}.pgm \;
> >-exec 'sh -c ppmtopgm {} > {}.pgm' \;
> >?
> почти так, только закавычить пришлось чуть иначе
> -exec sh -c 'ppmtopgm {} > {}.pgm' \;

Упс, да, конечно.

> Спасибо за подсказку.

YW :)

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/
 ----       visit our conference (Oct 1):
--          http://conference.osdn.org.ua


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

end of thread, other threads:[~2005-09-27 12:19 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-09-26 12:15 [Comm] find ... -exec и выходные потоки spider
2005-09-26 12:45 ` [Comm] " Michael Shigorin
2005-09-27  8:43   ` spider
2005-09-27 12:19     ` Michael Shigorin
2005-09-26 22:50 ` [Comm] " Dmitry V. Levin
2005-09-27  8:55   ` spider

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